我在Viewcontroller中有一個NSString屬性self.textFromTextVC,它的值在IBAction方法中變爲null。NSString屬性在IBAction方法中失去了值
- (IBAction)buttonPressed:(id)sender
{
NSLog(@"text before alarm is created: %@", self.textFromTextVC);
}
下面的方法是在同一個「.M」文件和他們保持的NSString屬性的值。
-(void)setPropertyTextToReceivedText:(NSString *)text
{
self.textFromTextVC = text;
NSLog(@"text received from text VC: %@", self.textFromTextVC);
[self doesStringKeepValue]; //I call this method to check and see if the NSString value
//was retained
}
-(void)doesStringKeepValue
{
NSLog(@"keep value: %@", self.textFromTextVC); //NSString value the same from the above
//method
}
下面是如何我已經宣佈的NSString屬性:
@property (nonatomic, copy) NSString *textFromTextVC;
基本上,我設置self.textFromTextVC
的IBAction爲方法被調用之前,這就是爲什麼我很困惑。我真的不確定發生了什麼事。我選擇了ARC。 我希望我只是犯了一個簡單的錯誤......幫助? 謝謝,
下面是另一個視圖 - 控制,我叫setPropertyTextToReceivedText方法:
@implementation TextViewController
@synthesize typedText;
- (IBAction)doneButton:(id)sender {
[self.typedText resignFirstResponder];
AlarmViewController *receiver = [[AlarmViewController alloc]init];
[receiver setPropertyTextToReceivedText:self.typedText.text];
//[self showAlert];
}
'textFromTextVC'的值不能在'buttonPressed:'中變爲null,因爲沒有可能導致它的代碼。在調用該方法之前它已經爲空。因此,請在代碼中顯示「textFromTextVC」最初爲其分配的任何值。 – Codo
你在哪裏調用'setPropertyTextToReceivedText'告訴我們代碼 –
@Codo我在方法setPropertyTexttoReceivedText中分配self.textFromTextVC。 – adam