我有两个views.In,一个视图,当我点击自定义按钮时,它进入第二个视图,因为我有文本视图,数据必须存储在临时内存中,所以我使用了以下代码:
NSString *myString=txtvNote.text;
[txtvNote setText:@""];
NSUserDefaults *standardUserDefaults = [NSUserDefaults standardUserDefaults];
if (standardUserDefaults) {
[standardUserDefaults setObject:myString forKey:@"note"];
[standardUserDefaults synchronize];
}当我单击add按钮回到第一个视图时,它将保存到数据库中,我使用了以下代码:
NSUserDefaults *standardUserDefaults = [NSUserDefaults standardUserDefaults];
NSString *val = nil;
if (standardUserDefaults)
val = [standardUserDefaults objectForKey:@"note"];
NSLog(@"Note::%@",val);然后在insert查询中传递此值。现在我的问题是,当我将该值保留为空时,它将采用之前插入的值。
发布于 2011-09-07 19:50:09
myString是指向txtvNote中的文本的指针。因此,如果将文本设置为@"“,则myString也将为空。要在赋值时保留txtvNote的值,请使用copy或在保存后重置文本:
NSString *myString=[[txtvNote.text copy] autorelease];
[txtvNote setText:@""];
....发布于 2011-09-07 19:48:37
序列必须是这样的
//首先将text设置为
[txtvNote setText:@""];//然后使用该文本
NSString *myString=txtvNote.text;发布于 2011-09-07 19:51:10
这就是NSUserDefaults的工作方式--每个值都存储在你的应用程序的首选项中,就像Obj-C中的任何其他集合一样,它不接受nil值。使用NSNull类的实例或空字符串。或者更好-使用中间控制器来存储值,并在第一个视图中使用键值观察。
https://stackoverflow.com/questions/7333234
复制相似问题