Ios 调整字符串以显示单数或复数单词

Ios 调整字符串以显示单数或复数单词,ios,objective-c,nsmutablearray,Ios,Objective C,Nsmutablearray,我正在显示一张图像的喜欢次数。我想避免典型的“1喜欢”,但没有成功。这是我当前的代码。问题是,如果我使用此代码,应用程序会崩溃,尽管我觉得它很好。数据源是一个仅包含数字的NSMutableArray if ([[mainDelegate.imagesLikes objectAtIndex:indexPath.section] isEqualToString:@"1"]) { likesLabel.text = [NSString stringWithFormat:@"%@ %@", [m

我正在显示一张图像的喜欢次数。我想避免典型的“1喜欢”,但没有成功。这是我当前的代码。问题是,如果我使用此代码,应用程序会崩溃,尽管我觉得它很好。数据源是一个仅包含数字的
NSMutableArray

if ([[mainDelegate.imagesLikes objectAtIndex:indexPath.section] isEqualToString:@"1"]) {
    likesLabel.text = [NSString stringWithFormat:@"%@ %@", [mainDelegate.imagesLikes objectAtIndex:indexPath.section], @"Like"];
} else {
    likesLabel.text = [NSString stringWithFormat:@"%@ %@", [mainDelegate.imagesLikes objectAtIndex:indexPath.section], @"Likes"];
}
事故日志:

-[__NSCFNumber isEqualToString:]: unrecognized selector sent to instance 0xb000000000000023
2014-08-28 02:27:12.146 App[8886:60b] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFNumber isEqualToString:]: unrecognized selector sent to instance 0xb000000000000023'

之所以会发生这种情况,是因为您获取的值不是NSString,而是u NSCFNumber。尝试这样做:

 if ([[mainDelegate.imagesLikes objectAtIndex:indexPath.section] integerValue] == 1) {
    likesLabel.text = [NSString stringWithFormat:@"%@ %@", [mainDelegate.imagesLikes objectAtIndex:indexPath.section], @"Like"];
} else {
    likesLabel.text = [NSString stringWithFormat:@"%@ %@", [mainDelegate.imagesLikes objectAtIndex:indexPath.section], @"Likes"];
}
如果源数组“只包含数字”,那么为什么要将其成员之一视为字符串?