0

私はNSMutuableArrayUIImages を持っています。彼を に保存しようとするとuserDefaults、警告が表示されます。文字列の配列であれば、問題なく動作します。

//save to memory
    NSMutableArray *savedImages=[[NSMutableArray alloc]init];
    for(int j=0;j<[selectedButtonsTags count];j++)
        [savedImages addObject:[assets objectAtIndex:[[selectedButtonsTags objectAtIndex:j] intValue]]];
    [memoryInstance setTempImagesToSend:savedImages]; //here save to NSUserDefault
    [savedImages release];

警告 :

[NSUserDefaults setObject:forKey:]: Attempt to insert non-property value

userdefault が、配列が保持するオブジェクトを気にするのはなぜですか??

4

1 に答える 1

4

のドキュメントからNSUserDefaults

NSUserDefaultsクラスは、float、double、integers、Booleans、URLなどの一般的な型にアクセスするための便利なメソッドを提供します。デフォルトのオブジェクトは、プロパティリスト、つまり、NSData、NSString、NSNumber、NSDate、NSArray、またはNSDictionaryのインスタンス(またはコレクションの場合はインスタンスの組み合わせ)である必要があります。他のタイプのオブジェクトを保存する場合は、通常、それをアーカイブしてNSDataのインスタンスを作成する必要があります。詳細については、「設定と設定プログラミングガイド」を参照してください。

UIImageリストにないことに気付くでしょう。UIImage画像をに保存する前に、NSDataまずオブジェクトに変換する必要がありますNSUserDefaults

NSUserDefaultsただし、大量のバイナリデータを格納するために使用しないでください。代わりに、画像をファイルシステムに書き込みます。それらをアプリのサンドボックス内の適切なフォルダーに保存します。必要に応じて、ファイル名をに保存できNSUserDefaultsます。

于 2013-02-27T19:14:34.430 に答える