将数组的数组保存到文件[ios]
我想要一个模型数组,这个模型的一个字段是可变数组 例如,在我的将数组的数组保存到文件[ios],ios,iphone,objective-c,arrays,nsmutablearray,Ios,Iphone,Objective C,Arrays,Nsmutablearray,我想要一个模型数组,这个模型的一个字段是可变数组 例如,在我的Model.h中,我有: @interface myModel : NSObject @property (assign,nonatomic) NSString* name; @property (assign,nonatomic) NSString* time; @property (assign,nonatomic) NSMutableArray * songs; @end 那么我的视图控制器我有: NSMu
Model.h
中,我有:
@interface myModel : NSObject
@property (assign,nonatomic) NSString* name;
@property (assign,nonatomic) NSString* time;
@property (assign,nonatomic) NSMutableArray * songs;
@end
那么我的视图控制器我有:
NSMutableArray * Storage;
myModel * arr;
arr =[[alarmModel alloc] init];
arr.name=@"pippo";
arr.time=@"01:00:00";
arr.songs=[NSMutableArray arrayWithObjects:@"pippo",@"pluto",@"paperino", nil];
[storage addObject:arr];
[storage writeToFile:filePath atomically:YES]
最后一个命令返回“否”,表示写入文件失败。
是否可以执行我想执行的操作?您应该初始化
NSMutableArray*存储
,尝试:
NSMutableArray *storage = [[NSMutableArray alloc] init];
不应该
arr=[[alarmModel alloc]init]
bearr=[[myModel alloc]init]代码>??还有@Ilario在回答中提出的建议。(基本上,您只声明了对象,还没有初始化它)检查@staticVoidMan的注释,然后。。。。此外“显示”您的文件路径…您不必实施任何NSCODIRECTORY协议,这是否能够保存您的模型并将其加载回?只有当文件仅包含属性列表类型时,您才能将数组写入文件(NSArray
,NSDictionary
,NSString
,NSNumber
…)。您的myModel
类不是属性列表类型,因此您应该使用前面的注释中提到的NSCoding
,或者使用NSDictionary
而不是myModel
类。另外,assign
可能不是您希望在myModel
类中存储属性的存储(这可能意味着您的songs
数组泄漏(没有ARC),或者根本没有保留(有ARC这是一个错误))。