繁体   English   中英

NSMutableArray没有填充

[英]NSMutableArray not populating

我有一个简单的NSMutableArray,我试图存储一些对象。但是在NSLog中,数组的内容总是为空...我只是不明白为什么。 这是我的代码:

在我的头文件中:

NSMutableArray *dataFiles;

在viewDidLoad中:

dataFiles = [[NSMutableArray alloc] init];

稍后在我的代码中尝试将一个字符串添加到我的NSMutableArray:

[dataFiles insertObject:url atIndex:0]; // 'url' is an an NSURL.

我究竟做错了什么? 这总是我如何使用NSMutableArray的,为什么它们一下子都不起作用?

UPDATE

在添加到数组之前,我确实在“url”(NSURL)上执行了一个NSLog,它根本不是null。 这是输出:

THE URL: file:///var/mobile/Containers/Data/Application/E991FAFC-80DB-437B-B214-96720B1AA7AF/Documents/19Feb15_072308am.aif

更新2

我刚刚尝试了@Dheeraj Singh解决方案而且没有用:

        if ([dataFiles count] == 0) {
            [dataFiles addObject:url];
        }

        else {
            [dataFiles insertObject:url atIndex:0];
        }

        NSLog(@"data in: %@", dataFiles);

谢谢你的时间,丹。

不确定是什么问题,但是下面(你的)代码对我来说工作正常。

NSMutableArray * arr = [[NSMutableArray alloc]init];
NSString *murl = @"file:///var/mobile/Containers/Data/Application/E991FAFC-80DB-437B-B214-96720B1AA7AF/Documents/19Feb15_072308am.aif";
NSURL *url = [NSURL URLWithString:murl];
[arr insertObject:url atIndex:0];
NSLog(@"Array is %@",arr);

产量

Array is (
    "file:///var/mobile/Containers/Data/Application/E991FAFC-80DB-437B-B214-96720B1AA7AF/Documents/19Feb15_072308am.aif"
)

我强烈感觉你正在使用NSArray来对抗NSMutableArray。 请确认一下。

您可以发布实际代码,以便我们可以告诉您发生了什么吗?

好好玩了一下后,我发现了什么是“错误的”或至少是什么阻止了我的代码工作。 这是因为在我在viewDidLoad方法中初始化NSMutableArray之前。 一旦我将NSMutableArray初始化代码移动到我想将数据写入其中的方法,它就开始工作了。 谁知道为什么? 这是我现在的代码:

        // Initialise the audio arrays.
        // Originally this line was in the viewDidLoad.
        dataFiles = [[NSMutableArray alloc] init];

        if ([dataFiles count] == 0) {
            [dataFiles addObject:url];
        }

        else {
            [dataFiles insertObject:url atIndex:0];
        }

你可以用以下方式做:

NSMutableArray * arr = [[NSMutableArray alloc]init];
NSString *url = @"www.test.com";
[arr addObject:url];
NSLog(@"Count of Array is %i",[arr count]);

*** if you want to add multiple items then you can do by following way
for (int i =0; i < 5; i++) {
    [arr addObject:@"Hello"];

}
NSLog(@"Count of array is %i",[arr count]);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM