请考虑以下代码:
- (IBAction)testButton:(id)sender{
//create BFF with random id
BFF * testBff = [[BFF alloc]init];
testBff.relationType=@"BFF";
testBff.id= [NSNumber numberWithInt:(arc4random() % 100)];
testBff.handshake=[NSDate date];
//Encode the object
//Since a .plist doesn't take custom objects, I convert my object into type NSData*
NSData *encodedBFF = [NSKeyedArchiver archivedDataWithRootObject:testBff];
//Insert the data into the plist and save
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"myBFFS.plist"];
[data setObject: encodedBFF forKey:testBff.id];
[data writeToFile:path atomically:YES];
}
我希望每次点击连接到此方法的按钮时,都会在myBFFs.plist
中添加一个新对象,驻留在我的文档文件夹中。
- 路径似乎很好
- 变量检查器指示'数据'NSDictionary
包含值为NSMutableData
的键
然而,不知何故,没有任何内容写入文件。
如果我改变
[data setObject: encodedBFF forKey:testBff.id];
到
[data setObject: @"foo" forKey:@"bar"];
写入文件。显然,我的编码尝试失败了?
我在这里做错了什么?
答案 0 :(得分:0)
我解决了如下: 显然,罪魁祸首是在这条线上设置关键:
[data setObject:encodedBFF forKey:testBff.id];
我改为
[myPlist setObject:encodedBFF forKey:[testBff.id stringValue]];