相关疑难解决方法(0)

NSPredicate检查对象类的种类

我有一个UIView对象数组.我想调用- (NSArray *)filteredArrayUsingPredicate:(NSPredicate *)predicate这个数组来获取MyCustomView对象数组.

如何用"isKindOf:"编码谓词?

iphone objective-c nspredicate ios

29
推荐指数
2
解决办法
1万
查看次数

for loops - 忽略对象类型?

我有时喜欢将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)

iphone for-loop objective-c nsarray

7
推荐指数
2
解决办法
148
查看次数

核心数据NSPredicate按实体类过滤?

如何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,phonesusernames.

要创建类似文本消息的typeahead,我想创建一个NSFetchRequestfor 类的Identity实体.personContact

class core-data nspredicate nsfetchrequest nsentitydescription

7
推荐指数
1
解决办法
1418
查看次数