1

我在 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];
}
4

3 回答 3

2

您的问题是与显示receiver的对象不同的对象VC(存在/推送)。

AlarmViewController *receiver = [[AlarmViewController alloc]init];
[receiver setPropertyTextToReceivedText:self.typedText.text];
于 2012-12-26T16:43:31.050 回答
0

改变这个:

NSLog(@"text before alarm is created: %@", self.textFromTextVC);

对此:

NSLog(@"%@: text before alarm is created: %@", self, self.textFromTextVC);

它可能会告诉您,您确实在查看同一类的两个不同对象实例。

于 2012-12-27T12:39:56.280 回答
-1

我想你忘记了:

@synthesize textFromTextVC;
于 2012-12-26T16:43:18.087 回答