アドレス帳クラスがあり、このクラスにはsearchName
メソッドがあります。アドレス帳から名前を削除するメソッドを追加したいと思いremoveName
ます (書いている間、それはかなり明確だと思いました..共有するだけです)。
とにかく、私が使用することですがpreformSelector:@selector(searchNames)
、この行でエラーが発生します..これは私のコードです:
//method to search address cards
-(NSMutableArray *) searchName:(NSString *) someName{
NSMutableArray *namsFound = [[NSMutableArray alloc] init];
for (AddressCards *addressCard in book){
if ([addressCard.name rangeOfString:someName options:NSCaseInsensitiveSearch].location != NSNotFound)
[namsFound addObject:addressCard];
else if ([addressCard.email rangeOfString:someName options:NSCaseInsensitiveSearch].location != NSNotFound)
[namsFound addObject:addressCard];
else if ([addressCard.country rangeOfString:someName options:NSCaseInsensitiveSearch].location != NSNotFound)
[namsFound addObject:addressCard];
else if ([addressCard.workPlace rangeOfString:someName options:NSCaseInsensitiveSearch].location != NSNotFound)
[namsFound addObject:addressCard];
}
return [namsFound count]? namsFound : nil;
}
を返すこのメソッド宣言を使用する必要がありますBOOL
。
-(BOOL) removeName:(NSString *)theName{
if ([theName performSelector:@selector(searchName:)] > 0){
for (AddressCards *card in book)
[book removeObject:theName];
return YES;
}
else
return NO;
}
これは、main.mでテストしようとしている方法です:
AdressBook *myBook = [[AdressBook alloc] initWithName:@"Family Address Book"];
if([myBook removeName:@"nir"] == YES)
[myBook list];
else
NSLog(@"Not in address book");
この行でスレッド 1 SIGBRT を取得しています: for (AddressCards *card in book)
これを理解するのを手伝ってください。乾杯