Note that dictionaries and arrays in property lists must also contain only property values.エラー
NSMutableArrayをNSUserDefaultsに保存しようとした時のエラー
↓こんなん。
2013-02-12 03:05:31.034 xxxxx[11607:1ca03] *** -[NSUserDefaults setObject:forKey:]: Attempt to insert non-property value '( "assets-library://asset/asset.JPG?id=FA015831-5CD3-47CD-B039-CDA0EEAB0E6D&ext=JPG", "assets-library://asset/asset.JPG?id=BC121EF6-82BA-4C45-8B9F-972D579CEF88&ext=JPG", "assets-library://asset/asset.JPG?id=44BF9DDA-3D68-44DB-B1F0-21F0DD6CCE18&ext=JPG", "assets-library://asset/asset.JPG?id=AE5D14EC-56CD-47AF-82B1-B9154441514F&ext=JPG", "assets-library://asset/asset.JPG?id=3EC400D3-9AC7-455E-8E79-D76B91D85695&ext=JPG", "assets-library://asset/asset.JPG?id=ECA9739E-3FF2-453E-8DC0-B1DD8E1248B6&ext=JPG", "assets-library://asset/asset.JPG?id=069C4339-EA67-4EBD-BAAD-F6F7D932117A&ext=JPG", "assets-library://asset/asset.JPG?id=89C675FD-D647-44D8-ACCE-CCD75A04A3E5&ext=JPG", "assets-library://asset/asset.JPG?id=7B73F43A-736C-4B39-A9E9-7B2253908DEA&ext=JPG", "assets-library://asset/asset.JPG?id=5DB66DD7-72A6-4E65-877D-D535D4A62C50&ext=JPG", "assets-library://asset/asset.JPG?id=63F66638-AF24-4883-A65A-10FF20831AE5&ext=JPG" )' of class '__NSArrayM'. Note that dictionaries and arrays in property lists must also contain only property values.
見ての通りAssetsLibaryのURLを保存しようとした時に発生。
NSMutableArrayに文字列を入れてたつもりがNSURLだったのが原因でした。
なので↓こんな感じに置き換えて対処。
id addPath = /* AssetsLibrary の URL */ NSString* strPath; /* 保存する文字列 */ if ([addPath isKindOfClass:[NSString class]]) { // 文字列なら strPath = addPath; // そのまま取得 } else if ([addPath isKindOfClass:[NSURL class]]) { // NSURLなら strPath = [addPath absoluteString]; // 文字列で取得 } else { // それ以外は NSLog(@"class error = %@",addPath); // とりあえずエラー吐いておく } /* あとはstrPathをNSMutableArrayに入れて、 NSUserDefaults setObjectで配列丸ごと保存するだけ */