我目前存儲NSUserDefaults
的NSUInteger
留存數據,但我需要移動到一個NSObject
是NSCoding
標準,將被存儲爲NSData
。有沒有一種方法可以確定我是否在我的密鑰中存儲了一個int或一個對象,以便我可以容納有或沒有從一種持久性類型遷移到另一種持久性類型的用戶?我知道objectForKey
返回一個ID,所以這是否足夠好?如何確定什麼樣的數據存儲在NSUserDefaults的
- (id) returnStuff {
NSData *data = [myUserDefaults objectForKey:myKey];
if([data isKindOfClass:[NSData class]) {
// then it must be an archived object
return (desiredObjectClass*)[NSKeyedUnarchiver unarchiveObjectWithData:data];
}
else {
NSUInteger returnInt = [myUserDefaults integerForKey:myKey];
return [NSNumber numberWithInteger: returnInt];
}
如果您已經編寫了代碼,爲什麼不測試代碼並找出答案? –
@HaydenHolligan @因爲在某些情況下,可能會有很多工作和/或沒有回頭路,所以我希望至少有初步警告或確認這是可行的理論。 – helloB