Gre*_*gir 4 serialization objective-c plist ios
我正在尝试使用以下代码读取plist中的数据:
NSString *error;
NSData * tempData = [[NSData alloc] initWithContentsOfFile:@"Data.plist"];
NSDictionary *temp = [NSPropertyListSerialization propertyListWithData:tempData options:NSPropertyListImmutable format:NSPropertyListXMLFormat_v1_0 error:&error];
Run Code Online (Sandbox Code Playgroud)
它会发出警告/错误说明:
"不兼容的整数到指针转换''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
我不知道发生了什么.我从代码提示选项中选择了NSPropertyListXMLFormat_v1_0.
另外,到目前为止,我在文档中找不到这个的基本原理:为什么你必须为"错误"声明一个指针变量,然后使用"&error"作为错误的参数:什么是&符号?
Sco*_*bes 28
当您尝试使用读取数据时NSPropertyListSerialization,不指定格式:传入NULL或传递变量的内存地址.
NSError *error;
NSData * tempData = [[NSData alloc] initWithContentsOfFile:@"Data.plist"];
NSPropertyListFormat plistFormat;
NSDictionary *temp = [NSPropertyListSerialization propertyListWithData:tempData options:NSPropertyListImmutable format:&plistFormat error:&error];
Run Code Online (Sandbox Code Playgroud)
&符表示"存储此变量的内存中的地址" - 通过使用它,您可以使该方法能够写入该内存位置,并替换变量的原始内容.调用此方法后,两者plistFormat和(可能)error都会包含一些新内容:plistFormat将告诉您 plist所处的格式,而不是相反,并且error(应该是类NSError)会告诉您遇到的任何错误.