2011-11-09 7 views
21

Tôi có một mảng các đối tượng UIView. Tôi muốn gọi - (NSArray *)filteredArrayUsingPredicate:(NSPredicate *)predicate trên mảng này để nhận mảng các đối tượng MyCustomView.Kiểm tra NSPredicate cho loại đối tượng lớp

Làm cách nào để viết mã vị từ bằng "isKindOf:"?

Trả lời

50

Try (depracated)

[NSPredicate predicateWithFormat: @"className == %@", [someObject className]] 

Hoặc

[NSPredicate predicateWithFormat: @"class == %@", [someObject class]] 
+0

trình với lớp. – user500

+0

Làm việc với 'className' quá cho tôi. Mặc dù lớp 'trông sạch hơn. – Jef

+0

Điều gì là phù hợp hơn? "=" hoặc "THÍCH"? – user500

-1

Làm thế nào về việc sử dụng -className như chìa khóa của bạn?

NSPredicate* foo = [NSPredicate predicateWithFormat: @"className == %@", @"MyCustomView"]; 
+6

Trong iOS API, tôi không thể thấy bất kỳ thứ gì như '-className' ... – user500

24

Tôi gặp lỗi khi sử dụng phương pháp của Jef. Điều này làm việc cho tôi, mặc dù.

NSPredicate *predicate = [NSPredicate predicateWithFormat: 
               @"self isKindOfClass: %@", class]; 

Nguồn: https://stackoverflow.com/a/2556306/168594