将数组的数组保存到文件[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]
be
arr=[[myModel alloc]init]??还有@Ilario在回答中提出的建议。(基本上,您只声明了对象,还没有初始化它)检查@staticVoidMan的注释,然后。。。。此外“显示”您的文件路径…您不必实施任何NSCODIRECTORY协议,这是否能够保存您的模型并将其加载回?只有当文件仅包含属性列表类型时,您才能将数组写入文件(
NSArray
NSDictionary
NSString
NSNumber
…)。您的
myModel
类不是属性列表类型,因此您应该使用前面的注释中提到的
NSCoding
,或者使用
NSDictionary
而不是
myModel
类。另外,
assign
可能不是您希望在
myModel
类中存储属性的存储(这可能意味着您的
songs
数组泄漏(没有ARC),或者根本没有保留(有ARC这是一个错误))。