メソッドが次のようになっている実装ファイル内のオブジェクトにアクセスしようとしています。
- (Boolean)humanIsAlive:(id)humanobj;
ただし、Xcodeはそのようなオブジェクトが存在しないと文句を言い、ビルドが失敗します。
メインファイルでは、次のように関数main.m
に記述します。main()
int main(int argc, const char * argv[]) {
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
Human *human = [[Human alloc] init];
MyHuman *myhuman = [[MyHuman alloc] init];
[human create:@"John Doe" age:25];
if ([human humanIsAlive:myhuman]) {
NSLog(@"%@ is alive and well.", myhuman.humanName);
} else {
NSLog(@"%@ is dead and gone.", myhuman.humanName);
}
[pool drain];
return 0;
}
Xcodeが文句を言うコードは次のとおりです。
- (Boolean)humanIsAlive:(id)humanobj {
if (humanobj.living == YES) {
return YES;
}
return NO;
}
それは合法であり、Xcode以外のすべてが、このオブジェクト内にそのようなプロパティが存在せず、そのようなオブジェクトが存在しないと不平を言っています。
ヘルプ?