オブジェクト「backgroundpicture」が所有するオブジェクト「cat」のメソッドにアクセスしようとしています。ViewController には backgroundpicture のインスタンスがあります。
「cat.h」のメソッド/メッセージ:
@interface Cat : NSObject
-(BOOL)checkIfTouchHit:(float) xx :(float) yy;
@end
"Cat.m":
- (BOOL)checkIfTouchHit:(float) xx :(float) yy{
NSLog(@"Inside checkIfTouchHit");
return YES;
}
"BackGroundPicture.h":
#import "Cat.h"
@interface BackGroundPicture : NSObject
@property (strong) Cat * katt;
@end
"BackGroundPicture.m":
@implementation BackGroundPicture
@synthesize katt = _katt
@end
"ViewController.m":
@interface ViewController ()
@property (strong) BackGroundPicture * bakgrunnsbilde;
@end
@implementation BackGroundPicture
@synthesize bakgrunnsbilde = _bakgrunnsbilde;
- (void)viewDidLoad
{...
[[self.bakgrunnsbilde katt] checkIfTouchHit :(float)touchLocation.x :(float)touchLocation.y]
...}
cat のメソッド「checkIfInside」内の文字列は表示されません。[_bakgrunnsbilde katt] も試しましたが、同じ結果が得られませんでした。これは同じ方法でコンパイルされていると思います。ここで何が欠けているのか疑問に思っています。誰かが助けてくれることを願っています。ありがとう :)
編集BackGroundPicture.m から数行を追加するのを忘れていました。ViewController内のViewDidLoadから起動時に実行されるメソッドです。BackGroundPicture.m では次のようになります。
- (void)createObjects {
Cat * katt = [[Cat alloc] init];
}
次のように ViewController.m から呼び出されます。
- (void)viewDidLoad
{
[_bakgrunnsbilde createObjects];
}
私はこれが実行されることを知っています。この編集が理にかなっているといいのですが、長い一日の後に頭が台無しになっています:)明日の朝に戻って確認します。