2009-03-19 6 views
0

NSArrayを含む文字列を、生成されたクラス以外のクラスで使用するために渡そうとしています。そこで私は、次のようにプロパティ行った:NSArrayのプロパティにココアでアクセスできません

をloginController.h

#import <Cocoa/Cocoa.h> 

@interface loginController : NSObject { 
NSArray *myArray; 
} 

@property (nonatomic, retain) NSArray * myArray; 

@end 

loginController.m

#import "loginController.h" 

@implementation loginController 

@synthesize myArray; 

@end 

質問は、私が先にクラスのどのインタフェースと実装ファイルでありますmyArrayにアクセスするには、次のようにします。このときインターフェイスファイルには、以下のようになります。

#import <Cocoa/Cocoa.h> 
#import "loginController.h" 

@interface viewController : NSObject { 
NSArray* myArray; 
} 

@property (nonatomic,retain) NSArray* myArray; 

@end 

私はこれが正しいと私はそれにmyarrayの使用したい場合はどのような実装になっているはずですかはわかりません。誰かが助けることができますか?

+1

オフトピック:クラス名は、目的に合わせてタイトルを付ける必要があります。 –

答えて

2

あなたは、プロパティがどのように機能するのか、それが何であるかについての基本的な誤解があると思います。彼らは単にゲッターとセッターを生成します。プログラム内のどのクラスからもオブジェクトを自動的に表示させることはありません。

詳細はApple's docsを参照してください。しかし、私はそれが良いではないかもしれないことを警告したい

#import "loginController.h" 

@implementation loginController 

@synthesize myArray; 
@synthesize myViewController; // this property needs to be 
           // declared in loginController.h 

// This method represents some hypothetical method that 
// would be invoked at some point after both 'myViewController' 
// and 'myArray' have been instantiated and initialized 
// (for example it could be 'awakeFromNib'). 
-(void)someMethod 
{ 
    myViewController.myArray = myArray; 
} 

@end 

:あなたのLoginControllerはあなたのViewControllerオブジェクトへの参照を持っていた場合

1

することは、あなたのLoginControllerクラスで、これらの線に沿って何かを行うことができますLoginControllerViewControllerをお互いに知っていることを建築的に決定してください。 2つのオブジェクト間で実際に配列を渡す方法の例として、このコードを投稿します。ほとんどのデザインでは、LoginControllerViewControllerの両方が、2つのコントローラインスタンスのオブジェクト設定myArrayであるいくつかのオブジェクト(たとえば、アプリケーションレベルのコントローラなど)に従属していると思います。

関連する問題