繁体   English   中英

无法写入自定义.plist

[英]Can't write to custom .plist

请考虑以下代码:

- (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"];

写入文件。 如此看来,我的编码尝试失败了吗?

我在这里做错了什么?

我按以下方式解决了问题:显然,罪魁祸首是在这一行中设置密钥:

[数据setObject:encodedBFF forKey:testBff.id];

我改为

[myPlist setObject:encodedBFF forKey:[testBff.id stringValue]];

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM