我在 Viewcontroller 中有一个 NSString 属性 self.textFromTextVC,它的值在 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];
}