Tôi có vấn đề sau: Tôi nhận được một thể hiện của một lớp được thông qua và muốn biết tên của lớp của cá thể này. Làm thế nào để có được điều này?Lấy tên của lớp từ một cá thể
Trả lời
nếu tất cả các bạn muốn làm là kiểm tra một đối tượng để xem nếu nó là một loại của một lớp nào đó
BOOL test = [self isKindOfClass:[SomeClass class]];
Cảm ơn, tôi sẽ sử dụng điều này :) – Robin
Được thăng hạng để dự đoán nhu cầu thay vì chỉ trả lời câu hỏi. –
Từ bên trong chính lớp
-(NSString *) className
{
return NSStringFromClass([self class]);
}
Tuyệt đối không muốn khơi dậy sự giận dữ của bạn, nhưng đây là câu trả lời thứ hai liên quan đến iOS trong tiểu sử của bạn. Dường như với tôi để chỉ thêm rằng chúng tôi có thể tham khảo một ví dụ như "tự" từ bên trong việc thực hiện nó. Bạn có bảo vệ điều này khi bổ sung đáng kể cho câu trả lời được chấp nhận ba tuổi không? – danh
@danh Tôi thấy bạn đang săn lùng tôi. Tốt cho bạn! –
Xin lỗi, tôi chỉ cần nhấp vào cái này và tranh luận về việc có nên nói gì không. Chỉ muốn làm một số ribbing nhẹ nhàng, nhưng tôi biết rằng tempers được nóng khá nhanh chóng trong các thiết lập bán faceless này. Cảm ơn vì đã tốt bụng về nó. (Trên thực tế, +1 cho thực hành đóng gói). – danh
Nếu bạn đang tìm cách có được classname trong Swift bạn có thể sử dụng phản ánh để lấy thông tin về đối tượng.
let tokens = split(reflect(self).summary, { $0 == "." })
if let typeName = tokens.last {
println(typeName)
}
hoặc chỉ 'self.dynamicType' – jbg
Bạn cũng có thể sử dụng [[self class] description]
Chỉ cần thêm một thể loại:
NSObject+Extensions.h
- (NSString *)className;
NSObject+Extensions.m
- (NSString *)className {
return NSStringFromClass(self.class);
}
Sau đó sử dụng đoạn mã sau:
NSString *className = [[SomeObject new] className];
hoặc thậm chí:
NSString *className = SomeObject.new.className;
Để sử dụng nó ở bất kỳ đâu, hãy thêm danh mục vào tệp YourProject.pch.
Nếu được gọi trên lớp Swift, điều này sẽ trả về một tên lớp không gian tên. – Alper
- 1. VB.NET: Lấy tên lớp của một cá thể
- 2. Cách lấy Tên cá thể từ cá thể trong AWS?
- 3. Lấy cá thể lớp theo chuỗi tên lớp
- 4. Groovy/Grails - Cách lấy cá thể lớp từ String?
- 5. Lấy tên lớp từ đối tượng Lớp
- 6. Lấy tên của một lớp học coffeescript?
- 7. Lấy cá thể đối tượng bằng tên chuỗi trong scala
- 8. Làm thế nào tôi có thể tìm thấy một cá thể metaobt Qt từ một tên lớp?
- 9. Không thể đọc một const trong một cá thể lớp?
- 10. Lấy tên của một phân lớp từ trong một siêu lớp
- 11. Tạo cá thể của lớp truy cập
- 12. Cách lấy tên của lớp Mootools từ trong số
- 13. Tạo cá thể lớp khách quan theo tên?
- 14. Lấy tên lớp học từ một mô-đun
- 15. SQL Server, chuyển đổi một cá thể được đặt tên thành cá thể mặc định?
- 16. Lấy tên Lớp Bê tông từ Lớp Tóm tắt
- 17. Lấy tên lớp học từ lớp mở rộng
- 18. lấy tên tệp của lớp mở rộng
- 19. Lấy mô hình/tên lớp của mô hình Backbone
- 20. Python: Lấy tên của lớp instantiating?
- 21. Lấy tên thực thể từ đối tượng lớp con của NSMangedObject
- 22. Không thể đoán cách lấy một cá thể Doctrine từ thông tin yêu cầu
- 23. Cách lấy tên lớp con từ lớp cha mẹ
- 24. Lấy một System.Type từ tên một phần của loại
- 25. Lấy ra tất cả các lớp của một không gian tên cụ thể
- 26. Làm thế nào để lấy một đối tượng ngẫu nhiên từ một cá thể NSSet?
- 27. Nhận tên bảng của lớp thực thể
- 28. Có thể lấy tên của lớp hiện tại từ một đối tượng không được khôi phục trong PHP?
- 29. Lấy tên của một DLL từ bên trong dll
- 30. Cách lấy loại lớp theo tên lớp?
Có lẽ hãy tua lại câu hỏi của bạn hoặc chấp nhận câu trả lời phù hợp với câu hỏi? –
@ JasperBlues: Xong, thậm chí không nhận ra mức độ phổ biến của nó! – Robin