2010-06-08 69 views
1

我想通过读取.txt文件创建一个NSMutableArray,并且无法将数组的最后一个元素设置为nil。将nil添加到NSMutableArray

NSString *filePath = [[NSBundle mainBundle] pathForResource:@"namelist" ofType:@"txt"]; 
NSString *data = [NSString stringWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:nil]; 
NSArray *list = [data componentsSeparatedByString:@"\n"]; 
NSMutableArray *mutableList = [[NSMutableArray alloc] initWithArray:list]; 

我想使用NSMutableArray的函数addObject,但不会允许我添加nil。我也试过:

[mutableList addObject:[NSNull null]]; 

但这似乎并不奏效。有没有解决这个问题的方法?

+0

这有什么错NSNull的方法呢?看起来它的设计是为了解决你的问题......为什么你需要你的最后一个元素为零(或NSNull)呢? – Vladimir 2010-06-08 14:30:43

+0

添加[NSNull null]时会出现什么错误?如果你使用这个方法是否可以使用:'NSMutableArray * mutableList = [list mutableCopy];'? – JeremyP 2010-06-08 15:00:15

+0

我认为[NSNull null]可能工作(我意识到问题是我试图打印出一个空值,这是导致错误)。这是源于这个问题的另一个问题:mutableList.count返回0,即使列表中包含元素(我甚至将其内容打印出来)。这是一种内存管理问题吗?作为Objective-C的新成员,来自Java,这是相当令人费解的:/ – 2010-06-08 15:40:10

回答

0

使用

NSMutableArray *mutableList = [[NSMutableArray alloc] init]; 
[mutableList addObjectsFromArray:list]; 

希望这有助于 jrtc27

+1

我认为:'NSMutableArray * mutableList = [list mutableCopy];'更好 – JeremyP 2010-06-08 15:00:57

+0

非常真实;) - 没有想到这一点。这也很容易理解 – jrtc27 2010-06-28 16:56:36