2012-04-02 6 views
0

このトピックでは、スタックオーバーフローのシングルトン、パブリック、およびグローバル変数に関するすべての例を検索して試しました。私はどこかでミスをしている。私は、textFieldの一部であり、私のsecondViewController.hで宣言されているstrIPという設定変数を持っています。この変数をmyWSupdate.mというクラスで使用します。それは接続文字列に渡したい変数です。これは正しくコンパイルされますが、実行時にアプリがクラッシュします。私は間違って何をしていますか?シングルトン、パブリック、またはグローバル変数の使用

コンパイラからのエラー:終了によるキャッチされない例外のアプリ 'NSInvalidArgumentException'、理由: '+ [SecondViewController sharedIP]:認識されないセレクタークラス0x6403cに送ら'

secondViewController.h

@interface SecondViewController : UIViewController 
{ 
UITextField *ipAdd; 

NSString *strIP; 

} 
@property (nonatomic, retain) IBOutlet UITextField *ipAdd; 
@property (retain) NSString *strIP; 

+(SecondViewController*)sharedIP; 

それからmyWSupdate.mでそれを呼び出す:

#import "SecondViewController.h" 

/* Implementation of the service */ 

@implementation myWSupdate 

- (id) init 
{ 
    if(self = [super init]) 
    { 

     SecondViewController* IP = [[SecondViewController sharedIP]init]; 
NSLog(@"the test has %@", IP.strIP); 
    } 
} 


@end 
+1

質問は何ですか? – Odys

+0

myWSupdate.mの "宣言されていない識別子 'strIP'を使用しています。何が欠けていますか? – iDev

+0

strIPはSecondViewControllerのメンバーで、myWSupdateのメソッドでアクセスしようとしていますか? – Almo

答えて

2

strIPSecondViewControllerに属しているので、あなたが参照する必要がありますそのオブジェクトの一部としてそれを放つ。

これは、SecondViewControllermyWSupdateの関係によって異なります。 (コントローラがmyWSupdateオブジェクトを作成した場合たとえば、あなたは、initの一部として変数を渡すことができます。)

国民がそれが変数インスタンスですので、必要があるという事実を変更しないとマークだという事実そのクラスのインスタンスに関連して使用される。

関連する問題