所以我整个上午都被困在这上面,我有一个已经初始化的MutableArray,但是当我尝试添加一个具有值的元素(我记录并检查)时,数组保持为空。< / p>
arr3=[[NSMutableArray alloc]init];
for(int i=0;i<10;i++)
{
if(n==3)
{
[arr3 addObject:name];
}
}
NSLog(@"%@", arr3);
这总是给我一个空的值。有人知道这里的错误吗?
答案 0 :(得分:1)
如果没有将对象添加到数组中,则'if'
语句是不可能的。仅用于测试'else'
添加'if'
:
arr3 = [NSMutableArray new];
if (n==3) {
[arr3 addObject:name];
} else {
[arr3 addObject:@"n not equal to 3"];
}
NSLog(@"%@", arr3);
在这个示例数组中,总会有一个对象。如果'NSLog'
仅打印来自else语句的对象,则表示您的问题仅适用于'n'
,其中较新的等于'3'
。
arr3
的声明必须是'strong'
,例如:
在功能范围内它将是简单的:
NSMutableArray *arr3;
..因为如果arr3
在调用__weak
之后以某种方式[NSMutableArray new];
,则会nil
。
但是我可以看到数组不是nil
,因为你这样说:
这总是给我一个为空的值。有谁知道 错误在这里?
所以
为空
表示0
对象不是nil
对吗?