プロが教える店舗&オフィスのセキュリティ対策術

初心者なのですみません。
ご存知の方教えていただきたいのですが、

例えばaインスタンスがbクラスをインスタンス化して
bインスタンスがcクラスをインスタンス化して
aインスタンスがcクラスをインスタンス化しないで
bインスタンスがインスタンス化したcインスタンスに
メソッド送信のようなことが
したいのですがうまくいきません。
どのようにすればよいですか?
よろしくお願いします

(aインスタンスがcクラスをインスタンス化した場合、bインスタンスがcクラスをインスタンス化したものと同じもの(アドレスが同じ?)なものなのでしょうか?違いますよね?ようするにストレージクラスやNSDataなどインスタンスの中のデータを複数のインスタンスから取り出したいのです)
面倒でスミマセン。

以下は確認のために簡易的に作ったものです。

文字数多すぎなのでinterfaceは省きました
#import "Aobject.h"
#import "Bobject.h"
#import "Cobject.h"

@implementation Aobject

- (IBAction)callb:(id)sender
{
id Bobj = [[Bobject alloc]init];
[Bobj make];
[Cobj log];//ここでエラーが出ます(`Cobj' undeclared (first use in this function) (Each undeclared identifier is reported only once for each function it appears in.))
}

@end

//--------------------------------------

#import "Bobject.h"
#import "Cobject.h"

@implementation Bobject

- (void)make
{
id cobj = [[Cobject alloc]init];
}
@end

//--------------------------------------

#import "Cobject.h"

@implementation Cobject
- (void)log
{
NSLog(@"ok");
}
@end

A 回答 (1件)

クラスAobjectのスコープに、変数が宣言されてないから、Objective-C以前に、Cとしてもエラーでは。


BobjectがCobjectのインスタンスを保持しているのなら、BobjectにCobjectへのアクセサメソッドを定義するってので回避できます。
    • good
    • 0
この回答へのお礼

ありがとうございます参考になりました。

お礼日時:2004/03/19 18:09

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!