【发布时间】:2012-12-26 15:31:29
【问题描述】:
我在 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;
基本上,我在调用 IBAction 方法之前设置了self.textFromTextVC,这就是我感到困惑的原因。我真的不确定发生了什么。我选择了 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分配任何值的代码。 -
你在哪里打电话
setPropertyTextToReceivedText给我们看代码 -
@Codo 我在 setPropertyTexttoReceivedText 方法中分配 self.textFromTextVC。
-
@InderKumarRathore 下面是我调用 setPropertyTextToReceivedText 的另一个视图控制器中的方法:
-
我可以在 AlarmViewController 中看到 NSString 值,只是在 IBAction 方法中看不到。
标签: objective-c properties nsstring ibaction