你好,我有一个数组,它比较两个数组以查看它是否包含一个对象,但是在使用 nslog 测试它之后
NSLog (@"1");
favoritesArray = [[NSMutableArray alloc] init];
NSLog (@"2");
//Add items
// favoritesArray = [[NSMutableArray alloc]init];
didContain = [[NSMutableArray alloc]init];
NSLog (@"3");
if ([favoritesArray containsObject:@"one"])
{
[didContain addObject:@"one"];
NSLog (@"4");
}
第四条日志没有出现。 这是否意味着我的实现是错误的,如果它包含一个对象,或者意味着不存在这样的文件?
编辑 这是我添加数组的地方
-(IBAction) addToFavorites {
favoritesArray = [[NSMutableArray alloc] init];
[favoritesArray addObject:@"one"];
NSLog (@"hello");
为什么这没有显示为对象@"one"
最佳答案
第四条日志没有出现,因为数组不包含对象@"one"
--NSLog
位于 if
内该案例的语句测试。
使用所示代码,这是正确的 - 数组将为空,因此没有 @"one"
并不奇怪。 .
大概真正的代码做了一些事情,将东西放入数组中,但由于我们看不到,所以很难说任何事情。
编辑:尽管您已添加到 addToFavorites
问题中的代码看起来很简单,但仍然不清楚它与原始代码有何关系。它是从哪里调用的?事件发生的顺序是什么?
一个特别的问题是您似乎在这两个位置分配了一个新数组。如果是这种情况,那么您看不到 @"one"
的原因出现的情况是您将其添加到一个数组中并在另一个数组中查找它。事实上,它们都恰好被称为 favoritesArray
这是偶然的,只是搅浑了水。
事实上,您很可能不应该在任一位置分配数组,而应该引用仅在其他位置分配一次的数组(例如,在您的类指定的 init
方法中)并且然后在应用程序的整个生命周期中保留为 ivar。
关于cocoa - 数组排序错误未知原因,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3519943/