2012-03-27 9 views
1

こんにちは、私は目的cに新しいです。私は渡される文字列を持っている.mファイルを持っています。1つの.mファイルから別の.mファイルに文字列値を渡す方法

NSString *passedMonth; 

私はこの

KLTile *kltil = [[KLTile alloc] inittempMonth:passedMonth]; 

一時、月のようにそれを渡すのですが、他の.mファイル内の文字列である

-(id)inittempMonth:(NSString *)tem{ 

     tempMonth = [[NSString alloc]init]; 
     self.tempMonth = tem; 
     NSLog(@" temp month....%@",self.tempMonth); 

    return self; 
} 

のinit内部のログが出力はなく外部同じログを与えていますinitメソッドは動作しません......

私はの外側のtempMonth文字列を使いたい... initメソッドの外側で文字列を使用する方法はありますか?

+0

KLTile.hで1つのNSString変数を宣言してpassedMonth変数の値を代入するだけで、ページ全体の値にアクセスできるようになります。 – Kuldeep

+0

tempMonthプロパティの宣言はどのように見えますか? – borrrden

+0

あなたがやっていることは特別なイニシャライザを作成することですが、文字列を渡す必要はありません。どうすればいいですか?オブジェクトを作成するときに設定した特定の設定でオブジェクトを作成するにはどうすればいいですか? – nycynik

答えて

3

initメソッドが間違っています。

@property (nonatomic, retain) NSString *tempMonth; 

それとも、ARCを使用している場合:

また、 .hファイルに保持プロパティとして tempMonthを宣言することを忘れないでください

- (id)initWithTempMonth:(NSString *)tem{ 
{ 
    self = [super init]; // This line is important 
    if (self) { 
     self.tempMonth = tem; 
     NSLog(@" temp month....%@",self.tempMonth); 
    } 
    return self; 
} 

:だからあなたのような何かにそれを変更する必要があります

@property (nonatomic, strong) NSString *tempMonth; 

は、その後、あなたは、このようなプロパティの値を記録することができます


+0

@property(nonatomic、strong)NSString * tempMonthを宣言しました。私はこの "self = [super init]; //この行は重要です"と書くと、initファミリのメソッドの外側で自分自身に代入することはできません...もう1つは、tempMonth文字列をmファイルはinitWithTempMonth:(NSString *)tem ... medhodが書かれています... – vamsi575kg

+0

私はグローバルファイルを.mファイルに宣言し、tempMonthをグローバル宣言された文字列に渡して解決しました。 monthID = tempMonthのように。メソッドの外側にあるグローバルなデカルト文字列を使用します。 – vamsi575kg

+0

@ vamsi575kg停止して基本に戻る必要があります。このようなものにグローバル変数を使うことは非常に悪いことです。 –

関連する問題