iPhone,在更新数据库之前需要检查值是否已更改?

时间:2010-10-05 11:07:31

标签: iphone

我选择了一个简单的方法,我创建了一些NSString变量,我在视图加载时设置了这些变量...

strKeptDesc = txtDescription.text;

NSLog(@"KDesc  =#%@# CDesc  =#%@#",strKeptDesc, txtDescription.text);

作为例外工作,输出您期望的值。

但是在我的db commit函数中,当我检查变量时,我得到了错误......

NSMethodSignature: 0x5c3fa80># CDesc  =#Gas bill3#
Program received signal:  “EXC_BAD_ACCESS”.

在我的文件中,我有

NSString *strKeptDesc;
}

@property (nonatomic, retain) NSString *strKeptDesc;

我也合成了。

1 个答案:

答案 0 :(得分:3)

strKeptDesc = txtDescription.text;

在这一行中,您只需为您的iVar分配一个字符串值,并且您的访问者方法不会被调用 - 因此,如果您要分配自动释放的字符串,它可能会被释放并变为无效。你必须写

self.strKeptDesc = txtDescription.text;

相反,所以strKeptDesc将保留在setter中并在当前方法之外保持有效。