ファイル間で変数にアクセスする方法について、私はかなり混乱しています。
例えば:
Apple、Fruit、Eatの3つのファイルがあります
フルーツ.h
@interface Fruit
{
NSString *name;
}
@property (nonatomic, retain) NSString *name;
@end
フルーツ.m
@implementation Fruit
#import "Fruit.h"
{
@synthesize name;
-(id) init
{
self = [super init];
if (self) {
name = [[NSMutableArray alloc] init];
}
return self;
}
}
@end
Apple.h
@interface Apple
#import Fruit.h
{
Fruit *apple;
}
@property (nonatomic, retain) Fruit *apple;
@end
Apple.m
#import Apple.h
@implementation Apple
@synthesize apple;
apple = [[Fruit alloc] init];
apple.name = @"apple";
@end
// 私の Eat.h は必要ないと思うので実質的に空です
Eat.m
@implementation Eat
#import Apple.h
//why is this not working?
NSLog(@"I am eating %@", apple.name);
これらは例としてゼロから書きました。したがって、セミコロンの欠落などのばかげた構文エラーや、私が見逃した明らかなエラーは無視してください。私はちょうど私が苦労しているものを反映しています。
私の混乱は、Apple.m では、ピリオド記号 (.) を使用して Fruit の名前 ivar にアクセスできることだと思います。しかし、Eat.m では、apple の名前 ivar に (.) でアクセスできません。getter メソッドを作成する必要がある/作成できることはわかっていますが、複数のファイルにまたがる方法で変数に直接アクセスする方法はありますか? おそらく悪いプログラミング手法であることは知っていますが(それが可能であれば)、なぜ機能が同じでないのか混乱しています。