Spenciefy
Spenciefy

Reputation: 892

Error when trying to store array of nsdictionaries in NSUserDefaults

Basically I have an array of NSdictionaries that I want to store in NSUserDefaults. pageDict is a local NSDictionary LyteData is a Singleton class used to store stuff The hierarchy goes from lyteData.textbookDictArray ---> lyteData.pagesDictArray ---> pageDict (NSDictionary)

    [pageDict setObject:textbookImage forKey:@"image"];
    [pageDict setObject:textbookName forKey:@"name"];
    [pageDict setObject:page forKey:@"page"];
    [pageDict setObject:nameOfClass forKey:@"class"];

    LyteData *lyteData = [LyteData sharedManager];
    [lyteData.pagesDictArray addObject:pageDict];


    [lyteData.textbookDictArray addObject:lyteData.pagesDictArray];
       NSLog(@"array: %@", lyteData.pagesDictArray);
       NSLog(@"textbook array: %@", lyteData.textbookDictArray);

   //THIS CODE IS FOR SAVING THE ARRAY OF TEXTBOOKS AS USERDEFAULT
    [[NSUserDefaults standardUserDefaults]
     setObject:lyteData.textbookDictArray forKey:@"textbookArray"];

I get this error:

   Attempt to set a non-property-list object (
        {
        class = hb;
        image = "<UIImage: 0x165c43d0>";
        name = fv;
        page = 25;
    }
) as an NSUserDefaults value for key textbookArray

How can I store that array in NSUserDefaults?

Upvotes: 0

Views: 1003

Answers (1)

Joel
Joel

Reputation: 16134

The problem is you are trying to store a UIImage to NSUserDefaults which is not supported. See here for the solution.

Upvotes: 2

Related Questions