Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios NSUserDefaults是否在应用程序传输后持续存在?_Ios_Xcode_Nsuserdefaults - Fatal编程技术网

Ios NSUserDefaults是否在应用程序传输后持续存在?

Ios NSUserDefaults是否在应用程序传输后持续存在?,ios,xcode,nsuserdefaults,Ios,Xcode,Nsuserdefaults,对于在一个开发人员帐户到另一个开发人员帐户之间传输的应用程序(不同的团队,因此将具有不同的捆绑包id前缀),一旦从新开发人员帐户发布了更新,存储在NSUserDefaults中的值是否持续存在,或者整个事件是否被清除?答案是否,原因如下 在应用程序的整个生命周期内,数据将以NSUserDefaults形式保留 如果您正在安装一个具有另一个bundle id[新bundle id]的应用程序,那么它将被视为另一个应用程序,因此不会保存旧应用程序[旧bundle id]中的任何旧数据。答案实际上是是

对于在一个开发人员帐户到另一个开发人员帐户之间传输的应用程序(不同的团队,因此将具有不同的捆绑包id前缀),一旦从新开发人员帐户发布了更新,存储在
NSUserDefaults
中的值是否持续存在,或者整个事件是否被清除?

答案是否,原因如下

在应用程序的整个生命周期内,数据将以NSUserDefaults形式保留


如果您正在安装一个具有另一个bundle id[新bundle id]的应用程序,那么它将被视为另一个应用程序,因此不会保存旧应用程序[旧bundle id]中的任何旧数据。

答案实际上是
-我使用两个从一个itunes connect帐户传输到另一个帐户(使用不同的团队id)的实时应用程序进行了测试只需
NSUserDefaults
即可存储和加载用户数据/设置。正如我所怀疑的,这确实有效的原因是因为
NSUserDefaults
不依赖捆绑标识的前缀来确定要使用哪个容器

TLDR:


只需将应用程序安装到您的设备中,如果它成为第二个应用程序,
NSUserDefault
将不会出现在新应用程序中,因为它会随应用程序一起出现,它自己的NSUserDefault会在应用程序更新之间保持不变,因此如果这是一个定期更新,则不应成为问题。问题是,您无法在具有先前“预传输”版本的应用程序的设备上“测试”任何开发版本或特殊版本。这是一个已知的问题,苹果公司对此进行了记录,但是他们没有提到任何关于NUSerDefaultsyes的内容,但是bundle id基本上是相同的。前缀(他从bundle id中隐藏的前缀已被更改),并且根据NSUserDefaults文档,在决定应用程序NSUserDefaults“container”时,前缀不包括在内……那么您实际测试过吗?