Tôi có một lớp trông như thế này:#typedef và KVC trong ObjC
@interface Properties : NSObject {
@private
NSNumber* prop1;
NSNumberBool* prop2;
//etc
nơi NSNumberBool là một typedef:
// in MyApp_Prefix.pch
typedef NSNumber NSNumberBool;
tôi có tất cả các @property và @synthesize tờ khai yêu cầu tạo các thuộc tính prop1 và prop2.
Mọi thứ được biên dịch và hoạt động tốt cho đến khi tôi cố truy cập prop2 bằng [myProperties valueForKey: @ "prop2"]. Điều này cho tôi một lỗi "class không phải là key-value compliant". Tuy nhiên, nhiều cuộc gọi tương tự hoạt động tốt:
myProperties.prop2; //works
[myProperties prop2]; //works
[myProperties valueForKey:@"prop1"]; //works
[myProperties valueForKey:@"prop2"] // throws NSUnknownKeyException ??
Điều gì đang xảy ra ở đây và cách khắc phục?
Cảm ơn,
Thật kỳ lạ, tự mình gặp phải vấn đề tương tự.Ngoài ra nếu bạn làm '[myProperties respondsToSelector: @selector (prop2)]' nó trả về YES cũng như – jjramos