我创建了一个Nsstring,然后将其写入文件,然后再次加载Nsstring.简单.
我如何使用Nsstrings的NSMutableArray,或者更好的我自己的类的NSMutableArray?
#import <Foundation/Foundation.h>int main(int argc,const char * argv[]){ @autoreleasepool { // insert code here... //write a Nsstring to a file NSArray *paths = NSSearchPathForDirectorIEsInDomains(NSdocumentDirectory,NSUserDomainMask,YES); Nsstring *documentsDirectory = [paths objectAtIndex:0]; Nsstring *filePath = [documentsDirectory stringByAppendingPathComponent:@"file.txt"]; Nsstring *str = @"hello world"; NSArray *myarray = [[NSArray alloc]initWithObjects:@"ola",@"alo",@"hello",@"hola",nil]; [str writetofile:filePath atomically:TRUE enCoding:NSUTF8StringEnCoding error:NulL]; //load Nsstring from a file NSArray *paths2 = NSSearchPathForDirectorIEsInDomains(NSdocumentDirectory,YES); Nsstring *documentsDirectory2 = [paths2 objectAtIndex:0]; Nsstring *filePath2 = [documentsDirectory2 stringByAppendingPathComponent:@"file.txt"]; Nsstring *str2 = [Nsstring stringWithContentsOffile:filePath2 enCoding:NSUTF8StringEnCoding error:NulL]; NSLog(@"str2: %@",str2); } return 0;}
印刷:str2:你好世界
解决方法 如果你想把你的数组写成pList,你可以// save itNSArray *myarray = @[@"ola",@"hola"];BOol success = [myarray writetofile:path atomically:YES];NSAssert(success,@"writetofile Failed");// load itNSArray *array2 = [NSArray arrayWithContentsOffile:path];NSAssert(array2,@"arrayWithContentsOffile Failed");
有关更多信息,请参阅“属性列表编程指南”中的Using Objective-C Methods to Read and Write Property-List Data.
但是,如果您希望保留对象的可变性/不变性(即精确的对象类型),并且打开保存更多对象类型的可能性,则可能需要使用存档而不是pList:
NSMutableString *str = [NSMutableString stringWithString:@"hello world"];NSMutableArray *myarray = [[NSMutableArray alloc] initWithObjects:str,nil];//save itBOol success = [NSKeyedArchiver archiveRootObject:myarray tofile:path];NSAssert(success,@"archiveRootObject Failed");//load Nsstring from a fileNSMutableArray *array2 = [NSKeyedUnarchiver unarchiveObjectWithfile:path];NSAssert(array2,@"unarchiveObjectWithfile Failed");
虽然我用数组说明了这个技术,但它适用于任何符合NSCoding
的对象(包括许多基本的Cocoa类,如字符串,数组,字典,NSNumber等).如果你想让自己的类与NSKeyedArchiver一起工作,那么你也必须使它们符合NSCoding.有关更多信息,请参阅Archives and Serializations Programming Guide.
以上是内存溢出为你收集整理的objective-c – 将NSMutableArray写入文件并加载回来全部内容,希望文章能够帮你解决objective-c – 将NSMutableArray写入文件并加载回来所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)