NSMutableArray添加对象不起作用

时间:2015-05-02 05:33:23

标签: ios objective-c arrays nsmutablearray

所以我整个上午都被困在这上面,我有一个已经初始化的MutableArray,但是当我尝试添加一个具有值的元素(我记录并检查)时,数组保持为空。< / p>

arr3=[[NSMutableArray alloc]init];
for(int i=0;i<10;i++)
{
    if(n==3)
    {
        [arr3 addObject:name];
    }
}
NSLog(@"%@", arr3);

这总是给我一个空的值。有人知道这里的错误吗?

1 个答案:

答案 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对吗?