我有一个简单的NSMutableArray,我试图存储一些对象。但是在NSLog中,数组的内容总是为空...我只是不明白为什么。这是我的代码:
在我的标题文件中:
NSMutableArray *dataFiles;
在viewDidLoad中:
dataFiles = [[NSMutableArray alloc] init];
稍后在我的代码中尝试将一个字符串添加到我的NSMutableArray:
[dataFiles insertObject:url atIndex:0]; // 'url' is an an NSURL.
我做错了什么?这总是我使用NSMutableArray的方式,为什么它们一下子都不起作用?
更新
我确实在将“url”(NSURL)添加到数组之前对其进行了NSLog,并且它根本不为空。这是输出:
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);
谢谢你的时间,Dan。
答案 0 :(得分:1)
不确定有什么问题,但是下面(你的)代码对我来说很好。
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。请确认相同。
您是否可以发布实际代码,以便我们可以告诉您发生了什么?
答案 1 :(得分:0)
好好玩了一下后,我发现了什么是“错误的”,或者至少是什么阻止了我的代码工作。这是因为在我在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];
}
答案 2 :(得分:-1)
您可以按以下方式执行:
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]);