gpt4 book ai didi

ios - 在 NSUserDefaults 中存储一个 UIViews 数组

转载 作者:行者123 更新时间:2023-11-28 18:24:29 24 4
gpt4 key购买 nike

我正在尝试向 NSDefault 添加一个 uiviews 数组,但它似乎并没有保留该数组。有谁知道为什么?我还尝试将每个 View 存储在 nsvalue 中,然后再将其存储在 nsdefault 中,但仍然无效。

NSArray *arr = [[NSArray alloc] initWithObjects:[NSValue valueWithNonretainedObject:myView], nil]];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:arr forKey:@"myKey"];

NSArray *resultArray = [defaults objectForKey:@"myKey"];

resultArray 为 nil!

谢谢

我尝试这样做的原因是因为这些是我的 uitableview 的标题 View 。由于创建它们需要时间,我只想创建一次并存储它们以备将来访问。

最佳答案

来自 NSUserDefaults 的文档:

The NSUserDefaults class provides convenience methods for accessing common types such as floats, doubles, integers, Booleans, and URLs. A default object must be a property list, that is, an instance of (or for collections a combination of instances of): NSData, NSString, NSNumber, NSDate, NSArray, or NSDictionary. If you want to store any other type of object, you should typically archive it to create an instance of NSData. For more details, see Preferences and Settings Programming Guide.

如果你想把一个 UIView(为什么?)放在 NSUserDefaults 中,你需要先将它归档到一个 NSData 对象中。

但是你需要问问自己为什么要在 NSUserDefaults 中放置一个 View 。你应该只把一些数据放在 NSUserDefaults 中。 View 显示数据。恢复数据后,很容易重新显示 View 。考虑将一些需要的数据放入 NSUserDefaults。

关于ios - 在 NSUserDefaults 中存储一个 UIViews 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13095243/

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