私はNSMutableArrayクラスを含むシングルトンを持って、クラスは、データをエンコード/デコードするための適切なNSCodingルーチンを含んでいます - それはすべて正常に動作します。NSCoding - 書き込みオブジェクトを再利用しますか?
しかし、クラス(配列)の一部ではなく、代わりにシングルトンの一部であり、クラス/配列の各項目に固有のデータも保存したいと思います。
BOOL alarmIsOn;
...
@property(nonatomic,assign) BOOL alarmIsOn;
...
@synthesize alarmIsOn;
...
[encoder encodeBool:alarmIsOn forKey:@"alarmison"];
...
alarmIsOn=[decoder decodeBoolForKey:@"alarmison"];
私は私のデータを保存すると、私は以前に完璧に動作しているこの使用:今、私は、次を追加したい
GlobalData *globDat=[GlobalData getSingleton];
NSData *encodedObject = [NSKeyedArchiver archivedDataWithRootObject:globDat.allMsgs];
[encodedObject writeToFile:plistPath atomically:YES];
をだから私は、以下を含むシングルトンで適切なコードを追加しましたそれはXcodeで私にこのエラーが発生しますが
encodedObject = [NSKeyedArchiver archivedDataWithRootObject:globDat.alarmIsOn];
[encodedObject writeToFile:plistPath atomically:YES];
:
をシングルトンからの追加データを含めますそして、この警告:
Semantic Issue: Incompatible integer to pointer conversion sending 'BOOL' (aka 'signed char') to parameter of type 'id'
は私が間違って何をやっているし、どのように私はこの問題を解決することができますか?
私はこれを完全に解決しました - DRVicはBOOLに関しては正しいです(下記参照)。そしてallMsgs配列と単一のオブジェクトをNSDictionaryに入れて、NSDictionaryをplistに保存します。誰かが望むなら、私は最終的なコードを投稿することができます。 – wayneh