次のセットアップがあります。
@interface Item : NSObject {
NSInteger *item_id;
NSString *title;
UIImage *item_icon;
}
@property (nonatomic, copy) NSString *title;
@property (nonatomic, assign) NSInteger *item_id;
@property (nonatomic, strong) UIImage *item_icon;
- (NSString *)path;
- (id)initWithDictionary:(NSDictionary *)dictionairy;
@end
と
#import <Foundation/Foundation.h>
#import "Item.h"
@interface Category : Item {
}
- (NSString *)path;
@end
item_id に基づいて単一のアイテムを取り出したい Category インスタンス (「categories」と呼ばれる) を含む配列があります。そのために使用するコードは次のとおりです。
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"item_id == %d", 1];
NSArray *filteredArray = [categories filteredArrayUsingPredicate:predicate];
これにより、次のエラーが発生します。
*キャッチされない例外 'NSUnknownKeyException' が原因でアプリを終了しています。理由: '[ valueForUndefinedKey:]: このクラスは、キー item_id のキー値コーディングに準拠していません。
どうすればこれを修正できますか?何が間違っていますか? プロパティが合成され、Category インスタンスで item_id プロパティにアクセスして正常に設定できます。