数组排序错误原因不明
你好我有这个阵列是比较两个阵列,看它是否与的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。
我编辑我的问题 – 2010-08-19 09:17:45
@Alx见上更新的答案。 – walkytalky 2010-08-19 10:21:56
或者至少在类的实例的生命周期中,并且当实例被解除分配时(即,在类的“ - (void)dealloc”方法中)释放。 – 2010-08-19 10:27:02
没有什么在这段代码有什么关系的文件。 – 2010-08-19 09:09:05
我编辑的问题 – 2010-08-19 09:18:29