0

私はプログラミングの初心者です。どんな助けでも大歓迎です。

AddViewControllerにあります。

NSLog(@"Am Currently at %@",locatedAt);

DetailsOfPeopleViewController *details=[DetailsOfPeopleViewController alloc];
   details.testAddressStr=[NSString stringWithFormat:@"%@",locatedAt];

details.testAddressStrここに値が表示されていますが、この値はDetailsViewControllerに渡されていません。

の値はlocatedAtAddViewControllerに表示されています。この値をDetailsViewControllerクラスのUILabelに表示しようとすると、その値がラベルに表示されません。

DetailsViewController.h:

NSString *testAddressStr;

@property(nonatomic,strong) NSString *testAddressStr;
@property(nonatomic,retain)IBOutlet UILabel *addressLabel;

DetailsViewController.mの場合:

 [addressLabel setText:testAddressStr];

また、この方法で試しています:

addressLabel.text=[NSString stringWithFormat:@"%@",testAddressStr];

私は間違いを犯しているところに本当に到達していません...

4

5 に答える 5

1

NSUserDefaultを使用してデータを送信できます

SetValue

NSUserDefaults * defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:[NSString stringWithFormat:@"%@",txtView.text]; forKey:@"testPersonNotesStr"];
[defaults synchronize];

GetValue

testPersonNotesStr = [[NSUserDefaults standardUserDefaults] objectForKey:@"testPersonNotesStr"];
NSLog(@"PERSON NOTE is........ %@",testPersonNotesStr);  

:)

于 2012-11-29T06:10:06.297 に答える
0

この問題は、自動解放された変数を割り当てていることが原因です。detailViewに表示する前にリリースされます。したがって、それを保持する必要があります。または、を割り当てる必要がありtestAddressStrます。

この行を置き換えるだけです:

details.testAddressStr=[NSString stringWithFormat:@"%@",locatedAt];

と:

details.testAddressStr = [[NSString stringWithFormat:@"%@",locatedAt] retain];

また

details.testAddressStr = [[NSString alloc] initWithString:[NSString stringWithFormat:@"%@",locatedAt]];
于 2012-11-22T10:02:38.257 に答える
0

初期化した文字列を保持しますlocatedAt。このような

[locatedAt retain];

プログラミングを楽しむ

于 2012-11-22T10:04:54.107 に答える
0

Objective-Cには「オブジェクトのスコープ」のようなものはありません。スコープルールはオブジェクトの存続期間とは何の関係もありません—保持カウントがすべてです。

通常、インスタンス変数の所有権を主張する必要があります。Objective-Cのメモリ管理ルールを参照してください。保持プロパティを使用すると、プロパティセッターは新しい値の所有権を主張し、古い値の所有権を放棄します。割り当てプロパティを使用すると、周囲のコードがこれを実行する必要があります。これは、責任と関心の分離の点で同じように混乱します。割り当てプロパティを使用する理由は、値を保持できない場合(BOOLやNSRectなどの非オブジェクトタイプなど)、または保持すると望ましくない副作用が発生する場合です。

ちなみに、NSStringの場合、正しい種類のプロパティは通常コピーです。そうすれば、誰かがNSMutableString(有効です—これは一種のNSStringです)を渡しても、あなたの下から変更することはできません。

于 2012-11-22T10:23:23.147 に答える
0

交換してみてください

 [addressLabel setText:testAddressStr];

次のように

 [addressLabel setText:self.testAddressStr];
于 2012-11-22T12:19:25.990 に答える