0

私はオブジェクト MyObject をこのようにセットアップしています


@interface MyObject : NSObject {
    int time;
}
@property (nonatomic, assign) int time;
@end

KVC を使用して値を設定しようとしていますが、コードは次のようになります。


MyObject* obj = [MyObject alloc] init];

int val = 2;
NSValue* nsvalue = [NSValue valueWithBytes:&val objCType:@encode(int)];
[obj setValue:nsvalue forKey:@"time"];   // here I get the exception

このコードを実行すると、次のような例外が発生します。


-[NSConcreteValue intValue]: unrecognized selector sent to instance 0x6e0f670

他のデータ型 (float) を試してみましたが、同じ例外が発生します。また、使用して値を取得しようとしましたが、valueForKeyそれはうまく機能します。

何か案は?

4

1 に答える 1

0

- setValue:forKey:'s valuenot はNSValueここを意味します。スカラーintを にボックス化する必要がありますが、 にはボックス化しNSNumberないでNSValueください。https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/KeyValueCoding/Articles/DataTypes.html#//apple_ref/doc/uid/20002171-BAJEAIEEを参照してください。

于 2012-02-17T09:12:18.783 に答える