我的UILabel我如何保存的NSData到我的數據庫
的UILabel *label1 = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 200, 200)];
label1.text = @"LABEL AREA";
我想將它保存在我的DATABSE(SQLite的)一個對象。
我的想法是使用
[NSKeyedArchiver archivedDataWithRootObject:label1]; //step1
這個對象轉換爲NSData的,這NSData的轉換爲的NSString(第二步),然後保存的NSString數據庫(步驟3)。
當我需要我的UILabel。我可以從數據庫中獲得的NSString,將其轉換爲NSData的,並使用
[NSKeyedUnarchiver unarchiveObjectWithData:];
讓我的UILabel。
但我在「第2步」中遇到問題。當我使用
NSString *strWithEncode = [[NSString alloc] initWithData:dataRaw encoding:NSUTF8StringEncoding];
我得到一個空對象。我不知道原因。 爲什麼?
非常感謝!
如果你的數據不是一個正確的字符串,那很可能會失敗。幾乎所有支持二進制數據的數據庫都是什麼類型的,如果它肯定需要是一個字符串(例如xml),那麼就使用base64編碼。 – Joe 2011-04-11 13:00:38