我正在我的应用程序上测试一些内容,我将当前使用的主题保存为字符串:“Light”与“Dark”。
我刚才意识到,在某些时候,当我不断地从浅到深切换(读取和写入字符串到<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true">
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/activity_focusable"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:focusableInTouchMode="true"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin">
<EditText
android:id="@+id/edt_test"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Hello"
android:imeOptions="actionNext"
android:inputType="text"
android:maxLines="1" />
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Hello"
android:imeOptions="actionNext"
android:inputType="text"
android:maxLines="1" />
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Hello"
android:imeOptions="actionNext"
android:inputType="text"
android:maxLines="1" />
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Hello"
android:imeOptions="actionNext"
android:inputType="text"
android:maxLines="1" />
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Hello"
android:imeOptions="actionNext"
android:inputType="text"
android:maxLines="1" />
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Hello"
android:imeOptions="actionNext"
android:inputType="text"
android:maxLines="1" />
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Hello"
android:imeOptions="actionNext"
android:inputType="text"
android:maxLines="1" />
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Hello"
android:imeOptions="actionNext"
android:inputType="text"
android:maxLines="1" />
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Hello"
android:imeOptions="actionNext"
android:inputType="text"
android:maxLines="1" />
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Hello"
android:imeOptions="actionNext"
android:inputType="text"
android:maxLines="1" />
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Hello"
android:imeOptions="actionNext"
android:inputType="text"
android:maxLines="1" />
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Hello"
android:imeOptions="actionNext"
android:inputType="text"
android:maxLines="1" />
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Hello"
android:imeOptions="actionNext"
android:inputType="text"
android:maxLines="1" />
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Hello"
android:imeOptions="actionNext"
android:inputType="text"
android:maxLines="1" />
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Hello"
android:imeOptions="actionNext"
android:inputType="text"
android:maxLines="1" />
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Hello"
android:imeOptions="actionNext"
android:inputType="text"
android:maxLines="1" />
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Hello"
android:imeOptions="actionNext"
android:inputType="text"
android:maxLines="1" />
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Hello"
android:imeOptions="actionNext"
android:inputType="text"
android:maxLines="1" />
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Hello"
android:imeOptions="actionNext"
android:inputType="text"
android:maxLines="1" />
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Hello"
android:imeOptions="actionNext"
android:inputType="text"
android:maxLines="1" />
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Hello"
android:imeOptions="actionNext"
android:inputType="text"
android:maxLines="1" />
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Hello"
android:imeOptions="actionNext"
android:inputType="text"
android:maxLines="1" />
<ImageView
android:layout_width="match_parent"
android:layout_height="150dp"
android:background="#ffffff"
android:onClick="onClickGetSignature"
android:src="@drawable/powered_by_google_light" />
<ImageView
android:layout_width="match_parent"
android:layout_height="150dp"
android:background="#ffffff"
android:onClick="onClickGetSignature"
android:src="@drawable/powered_by_google_light" />
<ImageView
android:id="@+id/result"
android:layout_width="match_parent"
android:layout_height="150dp"
android:background="#ffffff"
android:onClick="onClickGetSignature"
android:src="@drawable/powered_by_google_light" />
</LinearLayout>
</ScrollView>
)时,我有时会得到旧值:
UserDefaults
我已将日志添加到我读取和写入值的位置并正确执行。这是我测试的方式:
Light -> Dark -> Light -> Dark -> Light -> Light
我看到其他一些帖子表示 1. Start app
2. Change theme (save string to UserDefaults)
3. Stop app
4. Start app (read string from UserDefaults)
中的UserDefaults
存在问题,解决方法是重启设备或mac。
我明白了,但这是不是意味着问题也会出现在用户设备上? 有人遇到过这种问题吗?任何解决方案?
我正在使用XOS 8.2.1和IOS 10,Swift 3.我正在测试我的真实设备,而不是模拟器。
答案 0 :(得分:3)
您确定在保存数据后致电[[NSUserDefaults standardUserDefaults] synchronize];
吗?