n.e*_*ind 1 iphone cocoa-touch objective-c nsstring nsmutablearray
我试图将NSString转换(或复制?)为NSMutableArray.我想我的问题是我并不真正了解MutableArray的结构.在我有限的知识中,数组可能如下所示:
NoteBook = [[NSMutableArray alloc] init];
for (int temp = 0; temp < 3; temp++) {
[NoteBook insertObject:@"Page" atIndex:temp];
}
Run Code Online (Sandbox Code Playgroud)
哪个会给我一个PagePagePage数组.我们假设我想打开一个包含PagePagePage的txt文件,但是这些单词被一个已定义的字符串分开,这样我就可以将我的数组中的各个对象分开,如下所示:Page ---页面末尾--- Page- - 页面末尾---页面.
现在,我的下一步是从txt文件中读取此信息:
NSString *tempTextOut = [NSString stringWithContentsOfFile:filePath
encoding:NSUTF8StringEncoding
error:&error];
NoteBook = [tempTextOut componentsSeparatedByString: @"\n--- end of page ---\n"];
Run Code Online (Sandbox Code Playgroud)
但是,最后一行不起作用,我告诉xCode:不兼容的Objective-C类型分配'struct NSArray*',期望'struct NSMutableArray*'.我真的不明白这一点 - NSArray和MutableArray应该是兼容的(因为一个是另一个的子类).不应该xCode告诉我问题是我一直在尝试将NSString转换为NSMutableArray吗?
我可能需要在重新设置MutableArray之前重新设置它,因为现在它仍然包含我在第一步中分配给它的PagePagePage.我以为我的NoteBook可变数组会简单地被字符串替换,但我想情况并非如此.
我非常感谢这件事的任何帮助.谢谢!
componentsSeparatedByString:返回一个普通的不可变NSArray,而不是NSMutableArray.您可以将数组传递给数组[NSMutableArray arrayWithArray:]或在数组上使用mutableCopy以从中获取可变数组,或者您可以addObjectsFromArray:在现有的NSMutableArray上使用它来向其添加对象.
如果你去mutableCopy路线,请记住你有责任打电话release或打电话autorelease.
| 归档时间: |
|
| 查看次数: |
5594 次 |
| 最近记录: |