0

ViewControllerクラスからのインポート中にNSStringがNULLとして返される

文字列変数を第1クラスから第2クラスにインポートしたかったのですが、インポートしませんでした

参考までに、以下の適合コードを見つけてください

ViewController:


@interface ViewController : UIViewController{

NSString * string;

@property(nonatomic, retain)NSString * string;

@end

@implementation ViewController
@synthesize string;

-(IBAction) login:(id) sender{
string = @"HI";
}

class2:

#import"ViewController.h"

@interface class2 : UIViewController{
ViewController * vc;
NSString * string1;

@property(nonatomic, retain)NSString * string1;

@end

@implementation ViewController
@synthesize string1;

-(IBAction) login:(id) sender{
NSLog(@"%@",vc.string);

@end
}

NSLogがNULLを返しているところ!!!!

親切に助けてください!前もって感謝します

4

4 に答える 4

0

@pradeepjインスタンスもでNullあるため、返されます。インスタンスを取得する方法がわかりません。を使用している場合は、 のプロパティを使用してのインスタンスを取得できます。vcNullvcUINavigationControllervcviewControllersUINavigationController

于 2012-06-26T05:11:42.883 に答える
0

2 番目のクラスは、文字列値を設定した class1 の同じインスタンスへの参照を自動的に取得するだけではありません。class2 には、文字列を設定するクラス 1 のインスタンスを参照する class1 から設定される可能性のあるプロパティが必要です。

// クラス 1 で

Class2 *vc = [[Class2 alloc] init];
vc.class1 = self;

[self.navigationcontroller pushViewController:vc animated:YES];
于 2012-06-26T05:12:18.797 に答える
0

あなたのコードについては明確ではありませんが、class1 から class2 に文字列を送信する場合は、以下の方法に従うことができます。

1.宣言したのと同じように、class2でプロパティを宣言します。

NSString * string1;
@property(nonatomic, retain)NSString * string1;

@synthesize string1;

2. 次に、(class2 を初期化する場所から) class2 に移動する class1 で、次のように string1 に必要な値を割り当てます。

class2Obj.string1 = @"Hi";

class2 では、string1 にアクセスできます。

于 2012-06-26T05:14:12.750 に答える
0

変更するだけです:

-(IBAction) login:(id) sender{
string = @"HI";
}

-(IBAction) login:(id) sender{
self.string = @"HI";
}

これにより ur 変数が保持されるため、他の場所で見つけることができます。vc変数の値を取得する前に、変数を正しく割り当てたことを確認してくださいstring

于 2012-06-26T05:14:32.047 に答える