NSPropertyListSerialization propertyListWithData产生不兼容的转换警告/错误
我试图从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 *')types的参数。
我不知道发生了什么事。 我从代码提示select中select了NSPropertyListXMLFormat_v1_0。
另外,到目前为止,在文档中我找不到这样的理由:为什么你必须为“error”声明一个指针variables,然后使用“&error”作为错误的参数: 什么是&符号?
当您尝试使用NSPropertyListSerialization
读取数据时,您不指定格式:您可以传递NULL或传递variables的内存地址。
NSError *error; NSData * tempData = [[NSData alloc] initWithContentsOfFile:@"Data.plist"]; NSPropertyListFormat plistFormat; NSDictionary *temp = [NSPropertyListSerialization propertyListWithData:tempData options:NSPropertyListImmutable format:&plistFormat error:&error];
“&”意味着“存储器中存储该variables的地址” – 通过使用它,可以使该方法能够写入该存储器位置,并replace该variables的原始内容。 调用这个方法后, plistFormat
和(潜在的) error
都会包含一些新的东西: plistFormat
会告诉你 plist在什么格式,而不是相反的方式, error
(应该是类NSError
)会告诉你任何遇到的错误。