まず、私はこれを徹底的に調査して、探しているものと一致するものを見つけることができませんでした。私の文字列がUIAlertViewに表示されない理由
私の問題はこれです:Class1で作成された文字列プロパティがあり、次に示すように合成されました。
@interface Class1 : UIViewController
{
NSString *testvar;
}
@property (nonatomic, retain) NSString *testvar;
@end
@implementation Class1
@synthesize testvar
- (void)viewDidLoad
{
[super viewDidLoad];
self.testvar = @"Test variable";
}
@end
これは、それがで定義されている同じviewDidLoad
の方法で表示されたテストUIAlertView
に働くよう、変数/プロパティの値を定義するため正常に動作します。他のクラス、クラス2は、取得しようとする試みを行ったときに問題が発生しましたプロパティを使用します。次のように第二のクラスで使用されるコードは次のとおりです。
Class1 *foo = [[Class1 alloc]init];
UIAlertView *alert = [[UIAlertView alloc]initWithTitle: @"Title"
message:foo.testvar
delegate:self
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alert show];
[alert release];
[foo release];
何が起こるかというとUIAlertView
表示していることですが、何のメッセージを持っていません。私はClass1 testvarプロパティの値は、Class2がそれを取得しようとする前にリリースされていると思う、または私はそれを間違って設定しています。私は同じことを試みたが、NSString
の代わりにintを使ったので、これを言う。 Class1のviewDidLoad
でintの値を3に設定し、UIAlertView
が表示されたらintの値を示していましたが、設定値ではなくintのデフォルト値である "0"が表示されました。
Objective-Cに比較的新しく、まだメモリ管理の優れた把握力を持っていないので、エラーは自分の所有物の価値を設定する場所や方法と関係していると私は考えています。どんな洞察にも感謝します。前もって感謝します。
。どうもありがとう。 –