apple很厚道,kvc的時候幫我們做了一些類型轉換,規律貼出來,給大伙參考參考
@interface Entity : NSObject
@property (nonatomic, copy) NSString *str;
@property (nonatomic, assign) int i1;
@property (nonatomic, assign) int i2;
@property (nonatomic, assign) int i3;
@property (nonatomic, assign) float f1;
@property (nonatomic, strong) NSNumber *num;
@property (nonatomic, assign) BOOL b1;
@property (nonatomic, assign) BOOL b2;
@property (nonatomic, assign) BOOL b3;
@property (nonatomic, strong) NSDate *date1;
@property (nonatomic, assign) NSTimeInterval t1;
@end
// 數值的字串可以轉成數值類型
[obj setValue:@"2.4" forKey:@"i1"];
// 非數值的字串不認識
[obj setValue:@"a" forKey:@"i2"];
// 只認識特殊符號以前的數
[obj setValue:@"2014 10-24" forKey:@"i3"];
// 這個轉換過去是NSNumber類型
[obj setValue:@1 forKey:@"str"];
[obj setValue:@1.23 forKey:@"f1"];
// 轉去還是NSString
[obj setValue:@"99" forKey:@"num"];
// >= 1.0 為真, 1.0以下為假
[obj setValue:@0.9 forKey:@"b1"];
// >= 1.0 為真, 1.0以下為假
[obj setValue:@"1.1" forKey:@"b2"];
// true TRUE yes YES false FALSE no NO 都可以識別
[obj setValue:@"TRUE" forKey:@"b3"];
// 轉去還是NSTring
[obj setValue:@"2014-10-24" forKey:@"date1"];
// 不認識
[obj setValue:@"2014-10-24" forKey:@"t1"];
// 結論
// 數值類型的字串 to 數值 可以轉行成數值
// 類 to 類 不轉換直接賦值