valueForKeyPathでエラー発生

公開日: : 最終更新日:2014/02/04 未分類


#import <Foundation/Foundation.h>

@interface MyObject : NSObject
{
NSMutableArray* array;
float power;
}
@property (nonatomic, retain) NSMutableArray* array;
@property (nonatomic, assign) float power;
@end

@implementation MyObject
@synthesize array;
@synthesize power;

- (id) init
{
self = [super init];
if (self != nil) {
self.array = [NSMutableArray array];
}
return self;
}

- (void)dealloc {
[array release];
[super dealloc];
}
@end

int main() {

NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init];

MyObject* object1 = [[[MyObject alloc] init] autorelease];
object1.power = 1.1f;

MyObject* object2 = [[[MyObject alloc] init] autorelease];
object2.power = 2.2f;

MyObject* object3 = [[[MyObject alloc] init] autorelease];
object3.power = 3.3f;

MyObject* object4 = [[[MyObject alloc] init] autorelease];
object4.power = 4.4f;

MyObject* object5 = [[[MyObject alloc] init] autorelease];
[object5.array addObject:object1];
[object5.array addObject:object2];

MyObject* object6 = [[[MyObject alloc] init] autorelease];
[object6.array addObject:object3];
[object6.array addObject:object4];

MyObject* object7 = [[[MyObject alloc] init] autorelease];
[object7.array addObject:object5];
[object7.array addObject:object6];

NSLog(@"%@", [object7 valueForKeyPath:@"array"]);
NSLog(@"%@", [object7 valueForKeyPath:@"array.array"]);
NSLog(@"%@", [object7 valueForKeyPath:@"array.array.power"]);
NSLog(@"%@", [object7 valueForKeyPath:@"@max.array.array.power"]); // error
NSLog(@"%@", [object7 valueForKeyPath:@"array.@max.array.power"]); // error
NSLog(@"%@", [object7 valueForKeyPath:@"array.array.@max.power"]); // error

[pool release];

return 0;
}

実行時に以下のようなエラーが出てしまう。うーん、こういう集計はできないのかなあ・・・。

2009-06-02 01:31:51.045 valueForKeyPath2[91393:10b] *** -[NSCFArray compare:]: unrecognized selector sent to instance 0x113f10

2009-06-02 01:31:51.045 valueForKeyPath2[91393:10b] *** Terminating app due to uncaught exception ‘NSInvalidArgumentException’, reason: ‘*** -[NSCFArray compare:]: unrecognized selector sent to instance 0x113f10’

関連記事

サンフランシスコのピア39にあるチャウダーズでクラムチャウダーを食す!

アップルの開発者向けイベント「WWDC2014」に参加するため

ミスドのカルピスドーナツとカルピスポンデリングを食べてみた!

ミスドで期間限定のカルピスコラボ商品「カルピスドーナツ」と「カルピ

十三カレー計画で牛すじカレーネギのせを食す!(大阪・十三)

「iPhoneアプリ開発キャンプ@大阪」のランチで、十三カレー計画

大阪・難波の加寿屋 法善寺でかすうどんを食す。ランチタイムはおにぎり2個まで無料!

大阪・難波の加寿屋 法善寺 (かすうどん KASUYA)で、かす

ライブドアブログで運営していた「あきお商店」を「卵は世界である」に改名しました

少し前からライブドアブログで「あきお商店」というブログをやって

→もっと見る

PAGE TOP ↑