gpt4 book ai didi

objective-c - 为什么这个没有保存?

转载 作者:行者123 更新时间:2023-11-29 04:54:55 25 4
gpt4 key购买 nike

NSString *senderName = [sender currentTitle];
NSLog(@"Text to be Saved = %@",senderName);
[name setObject:senderName forKey:@"key"];
NSString *TextActuallySaved = [name stringForKey:@"key"];
NSLog(@"Text actually Saved = %@", TextActuallySaved);

所以我有这个代码,当我运行它时,我在控制台中得到这个:

appName[19556:f803] Text to be Saved = SCV
appName[19556:f803] Text actually Saved = (null)

那么,我做错了什么?我在 @interface 的 header 中声明了一个 NSUserDefault 对象,如下所示:

@interface viewController : UIViewController  {
NSUserDefaults *name;
}

所有这些代码都在被推送时位于 ViewController 中。所以是因为这个吗?如果是这样,有办法解决这个问题吗?这严重困扰着我。任何帮助将非常感激。谢谢!

这是我的初始化代码

- (id)init {
if (self = [super init])
{
name = [NSUserDefaults standardUserDefaults];
}
return self;
}

最佳答案

您实际上将该 ivar 设置为默认对象吗?

name = [NSUserDefaults standardUserDefaults];

您通常会在 init 方法中执行此类操作。


我猜测这是因为在 ObjectiveC 中 nil 可以调用方法,所有方法都返回 nil。因此,如果 name 为 nil,那么它将默默地无法保存,然后在您尝试读回它时调用 return nil。

关于objective-c - 为什么这个没有保存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8192842/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com