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 的,为什么它们突然不工作了?
更新
我确实在 "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);
谢谢你的时间,丹。
您可以按照以下方式进行:
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]);
不确定哪里出了问题,但下面(您的)代码对我来说工作正常。
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。请确认相同。
您能否 post 实际代码,以便我们可以告诉您发生了什么?
好吧,经过一番尝试后,我发现了 "wrong" 或者至少是什么阻止了我的代码工作。这是因为在我在 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,我试图在其中存储一些对象。但是在 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);
谢谢你的时间,丹。
您可以按照以下方式进行:
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]);
不确定哪里出了问题,但下面(您的)代码对我来说工作正常。
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。请确认相同。
您能否 post 实际代码,以便我们可以告诉您发生了什么?
好吧,经过一番尝试后,我发现了 "wrong" 或者至少是什么阻止了我的代码工作。这是因为在我在 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];
}