hacker
hacker

Reputation: 8947

Plist serialisation in Iphone?

I have an IPhone application in which i am using this code .

NSPropertyListFormat plistFormat;
NSDictionary *payloadDict = [NSPropertyListSerialization 
                       propertyListWithData:subscriptionProduct.receipt 
                                    options:NSPropertyListImmutable 
                                     format:&plistFormat 
                                       error:nil]; 

where i am getting the subscriptionProduct.receipt correctly and reciept is an nsdata, which is declared inside the subscriptionProduct class.But after the conversion when i am trying to print payloadDict it is terned to be null.can anybody help me

Upvotes: 0

Views: 451

Answers (2)

Cowirrie
Cowirrie

Reputation: 7226

Your comments seem to say that you want to construct a new NSDictionary that stores the object subscriptionProduct.receipt.

You can do this:

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

If you want to load the receipt later, you can do this:

NSData *receiptData = [payloadDict objectForKey:@"receipt"];

Upvotes: 0

Cowirrie
Cowirrie

Reputation: 7226

Try getting the error out of the method and displaying it:

NSPropertyListFormat plistFormat;
NSError *parseError;
NSDictionary *payloadDict = [NSPropertyListSerialization 
                       propertyListWithData:subscriptionProduct.receipt 
                                    options:NSPropertyListImmutable 
                                     format:&plistFormat 
                                      error:&parseError]; 

NSLog(@"payloadDict = %@", payloadDict);
NSLog(@"parseError = %@", parseError);

If parseError is nil, the property list serialization thinks it read the data properly. If not, its contents should tell you where to look.

Upvotes: 1

Related Questions