我正在尝试使用以下代码从 plist 中读取数据:
NSString *error;
NSData * tempData = [[NSData alloc] initWithContentsOfFile:@"Data.plist"];
NSDictionary *temp = [NSPropertyListSerialization propertyListWithData:tempData options:NSPropertyListImmutable format:NSPropertyListXMLFormat_v1_0 error:&error];
它会发出警告/错误,指出:
“不兼容的整数到指针转换将“int”发送到“NSPropertyListFormat”类型的参数(又名“unsigned int *”)。
我不知道发生了什么事。我从代码提示选项中选择了 NSPropertyListXMLFormat_v1_0。
另外,到目前为止,我在文档中找不到这样做的基本原理:为什么必须为“error”声明一个指针变量,然后使用“&error”作为 error: 的参数。 & 符号有什么用?
当你试图read数据使用NSPropertyListSerialization
,您不指定格式:您要么传入 NULL,要么传递变量的内存地址。
NSError *error;
NSData * tempData = [[NSData alloc] initWithContentsOfFile:@"Data.plist"];
NSPropertyListFormat plistFormat;
NSDictionary *temp = [NSPropertyListSerialization propertyListWithData:tempData options:NSPropertyListImmutable format:&plistFormat error:&error];
& 符号的意思是“内存中存储该变量的地址”——通过使用它,您可以使该方法能够写入该内存位置,并替换变量的原始内容。两个都plistFormat
和(可能)error
调用此方法后将包含一些新内容:plistFormat
会告诉youplist 的格式是什么,而不是相反的格式,以及error
(这应该属于类NSError
)将告诉您遇到的任何错误。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)