我真的需要一些帮助
当我尝试使用NSMutableArray获取节的单元格数量时,我得到[__NSCFString count]:无法识别的选择器发送到实例0x6d567e0
当我使用“行= [[searchProfile objectAtIndex:section] count];”时,会发生这种情况
这是代码:
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
NSLog(@"1");
// _________ Return the number of sections ________
int sections = 0;
if (tableView == self.tableView)
{
sections = 2;
}
if (tableView == self.searchDisplayController.searchResultsTableView)
{
sections = [searchedProfile count];
}
return sections;
}
/* ------------------------------------------ Set The Number Of Cells for Each Section ------------------------------- */
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
NSLog(@"2");
// _________ Return the number of rows in the section. ________
int rows = 0;
if (tableView == self.tableView)
{
if (section == 0) {
rows = userProfile.count;}
else {
rows = profiles.count;}
}
if (tableView == self.searchDisplayController.searchResultsTableView)
{
rows = [[searchedProfile objectAtIndex:section]count];
}
return rows;
}
以及将字符串插入“searchedProfile”数组的方法:
- (BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchString:(NSString *)searchString
{
searchedKeys = [NSMutableArray array];
searchedProfile = [NSMutableArray array];
searchedData = [NSMutableDictionary dictionary];
[searchedProfile removeAllObjects];
[searchedData removeAllObjects];
[searchedKeys removeAllObjects];
NSDictionary *profile;
for (profile in profiles)
{
NSString *birthname;
NSString *currentname;
NSString *photopath;
NSDate *birthdate;
for (birthname in profile)
{
birthname = [profile objectForKey:@"birthname"];
currentname = [profile objectForKey:@"currentname"];
photopath = [profile objectForKey:@"profilepic"];
birthdate = [profile objectForKey:@"birthdate"];
NSRange nameRange = [birthname rangeOfString:searchString options:NSCaseInsensitiveSearch];
if (nameRange.location != NSNotFound)
{
[searchedProfile addObject:birthname];
[searchedData setObject:birthname forKey:@"birthname"];
[searchedData setObject:currentname forKey:@"currentname"];
[searchedData setObject:photopath forKey:@"profilepic"];
[searchedData setObject:birthdate forKey:@"birthdate"];
if ([birthname isEqualToString:[profile objectForKey:@"birthname"]])
break;
}
}
}
NSLog(@"SEARCHED PROFILES: %@", searchedProfile);
NSLog(@"SEARCHED DATA:%@", searchedData);
NSLog(@"SEARCHED KEYS:%@", searchedKeys);
NSLog(@"count test: %d", searchedProfile.count);
return YES;
}
谢谢 !
最佳答案
看来您正在对NSString上的NSArray使用count
方法,这是不允许的。您将NSStrings存储在searchedProfile
数组中,您似乎想找出字符串的长度。所以代替这个:
rows = [[searchedProfile objectAtIndex:section] count];
做这个:
rows = [[searchedProfile objectAtIndex:section] length];
关于objective-c - NSMutableArray获取[__NSCFString计数]:无法识别的选择器已发送到实例,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12327411/