好的,所以還有另一個類似的問題,我發現這個在SO上,但這傢伙發送一個stringValue消息給一個數組,並且我有不同的情況。NSNumber與stringValue的NSString轉換失敗
這是代碼是死於行:
AppModel.instance.loginDataObject.uid.stringValue
只是爲了調試的目的,我把它改成一個NSLog的,就像這樣:
NSLog(@"uid stringValue: %@", AppModel.instance.loginDataObject.uid.stringValue);
正被拋出的異常:現在
-[__NSCFString stringValue]: unrecognized selector sent to instance 0xa8525d0
, 「流體」 是一個NSNumber,如loginDataObject的頭文件中聲明:
#import "Jastor.h"
@interface LDLoginData : Jastor
@property (nonatomic, strong) NSString *api_login_key;
@property (nonatomic, strong) NSString *clazz_reg_code;
@property (nonatomic, strong) NSNumber *current_clazz;
@property (nonatomic, strong) NSString *mail;
@property (nonatomic, strong) NSString *name;
@property (nonatomic, strong) NSString *profile_first_name;
@property (nonatomic, strong) NSString *profile_last_name;
@property (nonatomic, strong) NSNumber *teacher_id;
@property (nonatomic, strong) NSNumber *uid;
@property (nonatomic, strong) NSString *user_type;
@property (nonatomic, strong) NSNumber *va_user_clazz_id;
@end
請注意,我正在使用Jastor類來填充loginDataObject。
此外,調試器命令顯示它是一個NSNumber:
po AppModel.instance.loginDataObject.uid
(NSNumber *) $1 = 0x0a8525d0 7593
但不知何故,它不向stringValue的選擇作出迴應:
po AppModel.instance.loginDataObject.uid.stringValue
error: property 'stringValue' not found on object of type 'NSNumber *'
error: 1 errors parsing expression
即使這種方法是clearly documented。現在
,如果我叫了UID對象的描述方法:
po AppModel.instance.loginDataObject.uid.description
error: property 'description' not found on object of type 'NSNumber *'
error: 1 errors parsing expression
它不喜歡它的控制檯,但如果我我的代碼改成這樣:
NSLog(@"uid stringValue: %@", AppModel.instance.loginDataObject.uid.description);
該代碼執行,我得到這個在控制檯:
2012-09-29 15:02:11.829 MyApp[28661:c07] uid stringValue: 7593
那麼,究竟是怎麼回事?