我有一個單一的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];
現在我想添加以下內容包括來自辛格爾頓附加數據:
encodedObject = [NSKeyedArchiver archivedDataWithRootObject:globDat.alarmIsOn];
[encodedObject writeToFile:plistPath atomically:YES];
但是它給了我這個錯誤在Xcode:
Automatic Reference Counting Issue: Implicit conversion of 'BOOL' (aka 'signed char') to 'id' is disallowed with ARC
而且這樣的警告:
Semantic Issue: Incompatible integer to pointer conversion sending 'BOOL' (aka 'signed char') to parameter of type 'id'
我在做什麼錯了,我怎麼能解決這個問題?
我現在完全解決了這個問題 - DRVic對BOOL(見下面)是正確的,我已經將allMsgs數組和單個對象包含到NSDictionary中,然後將NSDictionary保存到plist中 - 完美地工作。如果有人需要,我可以發佈最終的代碼。 – wayneh 2012-03-30 13:37:20