我有一个UIView对象数组.我想调用- (NSArray *)filteredArrayUsingPredicate:(NSPredicate *)predicate这个数组来获取MyCustomView对象数组.
如何用"isKindOf:"编码谓词?
我有时喜欢将IB元素组织成NSArrays主要是为了帮助我组织我的元素.通常,不同类别的对象使它们彼此成为相同的数组.虽然这是一种方便的组织方式,但我似乎无法理解为什么如果我有这样的数组:
NSArray *array = [NSArray arrayWithObjects:((UITextField *)textField), ((UISegmentedController *)segmentedController), nil];
Run Code Online (Sandbox Code Playgroud)
当我放置这样的for循环时,为什么我得到"不响应选择器"消息:
for (UITextField *text in array) {
[text setText:@""];
}
Run Code Online (Sandbox Code Playgroud)
该for循环似乎要传递是类的不是对象UITextField.
如果指定数组中的所有对象都通过循环,则声明对象类的重点是什么?
编辑仅供参考,这就是我现在处理它的方式:
for (id *object in array) {
if ([object isMemberOfClass:[UITextField class]]) {
foo();
} else if ([object isMemberOfClass:[UISegmentedController class]) {
bar();
}
}
Run Code Online (Sandbox Code Playgroud) 如何NSPredicate按类的实体创建过滤器Contact?
NSPredicate的解决方案检查对象类崩溃的类型:
[NSPredicate predicateWithFormat:@"person.class == %@", [Contact class]];
*** Terminating app due to uncaught exception 'NSInvalidArgumentException',
reason: 'keypath person.class not found in entity <NSSQLEntity User id=12>'
Run Code Online (Sandbox Code Playgroud)
我有核心数据实体User(app用户)和Contact(地址簿联系人),两个孩子Person(抽象实体).Person有很多identities,可以是emails,phones或usernames.
要创建类似文本消息的typeahead,我想创建一个NSFetchRequestfor 类的Identity实体.personContact
class core-data nspredicate nsfetchrequest nsentitydescription