2011-02-01 63 views
0

在我的应用程序中,我接受一个UITextField值并对其进行修剪并分配给一个字符串在Appdelegate中声明的变量。它赋值给一个appdelegate变量并且工作正常,有时它不会赋值给appdelegate变量(这个值在另一个视图中使用,所以在appdelegate中声明)。 Plz帮助...字符串值不能分配给iPhone中的字符串变量?

NSString *txtTemp=[NSString stringWithFormat:@"%@",[txtName.text stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]]; 
txtName.text=txtTemp; 
[self appDelegate].customSearchQuery=[NSString stringWithFormat:@"%@",txtTemp]; 

NSLog(@"--appDelegate.customSearchQuery =%@",appDelegate.customSearchQuery); 
+0

确保`appDelegate`变量被初始化('的appDelegate = [[UIApplication的sharedApplication]代表]`)你在做上述操作之前。 – EmptyStack 2011-02-01 08:53:00

回答

1

这很可能是内存管理问题。 NSString创建一个自动释放对象。如果您想在上面显示的方法外使用它,您将必须使用retain。最简单的事情就是在你的Appdelegate.h中删除

@property (nonatomic, retain) NSString *customSearchQuery; 

。这应该够了吧。

在appdelegate的dealloc-method中,你需要释放它 - 否则你会泄漏NSString;与上面的声明,你将添加

customSearchQuery = nil;