我有一个iPhone应用程序,我正在使用此代码。
NSPropertyListFormat plistFormat;
NSDictionary *payloadDict = [NSPropertyListSerialization
propertyListWithData:subscriptionProduct.receipt
options:NSPropertyListImmutable
format:&plistFormat
error:nil];
我正确地获取subscriptionProduct.receipt并且reciept是一个nsdata,它在subscriptionProduct类中声明。但是当我尝试打印payloadDict时转换后它被定为null.can任何人帮助我
答案 0 :(得分:1)
尝试从方法中获取错误并显示它:
NSPropertyListFormat plistFormat;
NSError *parseError;
NSDictionary *payloadDict = [NSPropertyListSerialization
propertyListWithData:subscriptionProduct.receipt
options:NSPropertyListImmutable
format:&plistFormat
error:&parseError];
NSLog(@"payloadDict = %@", payloadDict);
NSLog(@"parseError = %@", parseError);
如果parseError
为nil
,则属性列表序列化认为它正确读取数据。如果没有,它的内容应告诉你在哪里看。
答案 1 :(得分:0)
您的评论似乎表明您要构建一个存储对象NSDictionary
的新subscriptionProduct.receipt
。
你可以这样做:
NSMutableDictionary *payloadDict = [NSMutableDictionary dictionary];
// Always check if values are nil before adding them to a dictionary.
if (subscriptionProduct.receipt)
[payloadDict setObject:subscriptionProduct.receipt forKey:@"receipt"];
如果您想稍后加载收据,可以执行以下操作:
NSData *receiptData = [payloadDict objectForKey:@"receipt"];