我有 Java 和 Android 开发经验,现在正在尝试学习 Objective-C 和 iPhone/iPad 开发。为了帮助自学,我正在将我为 android 制作的应用程序重新编写到 iPhone 上。
我现在正在尝试在我填充了来自“成员”对象的名称的表格视图中使用 UISearchBar。但是,我无法使用 NSPredicate 从我创建的成员对象中检索名称属性,因为它崩溃了。我能够通过创建一个完全独立的数组来创建一个解决方法,其中只填充名称并将其与 NSPredicate 一起使用,但这远非理想,并且会在未来产生问题。
所以基本上通过这样做,我能够确定问题是我如何使用 NSPedicate 或者我如何在上一个类中设置我的成员对象。澄清一下,当我进入使用 NSPredicate 的方法时,我的对象已正确填充,所以我知道我的对象不只是 nil。
这是我的会员班的.h。
@interface AKPsiMember : NSObject
#define CURRENT_STATUS @"Current"
#define ALUMNI_STATUS @"Alumni"
@property (nonatomic, strong) NSString *firstName;
@property (nonatomic, strong) NSString *lastName;
@property (nonatomic, strong) NSString *emailAddress;
@property (nonatomic, strong) NSString *pledgeClass;
@property (nonatomic, strong) NSString *major;
@property (nonatomic, strong) NSString *phoneNum;
还有我的 TableViewController .m 包含 UISearchBar 方法委托
- (void)filterContentForSearchText:(NSString*)searchText scope:(NSString*)scope
{
NSPredicate *resultPredicate = [NSPredicate
predicateWithFormat:@"SELF.firstName contains[c] %@",
searchText];
self.searchedMemberNameResults = [self.listedMembers filteredArrayUsingPredicate:resultPredicate];
}
最后是我的堆栈跟踪中的错误
'NSInvalidArgumentException', reason: '-[AKPsiMember isEqualToString:]: unrecognized selector sent to instance 0x716bbd0'