我写了以下代码:
typedef enum {
kProductList,
kProductGrid,
kProductSingleView
} ProductViewType;
ProductViewType ViewType;
Run Code Online (Sandbox Code Playgroud)
在我的视图更改方法中,我正在更改ViewType.当应用程序关闭时,我想在UserDefauls中保存最后一个ViewType,这样当第一次加载时,我可以检查用户上次ViewType并将其设置为默认值.
我写了以下代码:
[[NSUserDefaults standardUserDefaults] setObject:ViewType forKey:@"ProductViewType"];
Run Code Online (Sandbox Code Playgroud)
但XCode显示警告:指向整数转换的指针不兼容.
任何解决方案 谢谢.
Ste*_*ton 18
NSUserDefaults存储的对象不是C数据类型.
没试过这个,但你可以通过以下改变逃脱:
[[NSUserDefaults standardUserDefaults] setObject:@(ViewType) forKey:@"ProductViewType"];
Run Code Online (Sandbox Code Playgroud)
该@()符号是短手[NSNumber numberWithInt:viewType].
因为它ViewType不是一个物体。
您可以将 ViewType 放在NSValue第一个中。
NSValue *value = [NSValue value:&ViewType withObjCType:@encode(ProductViewType)];
[[NSUserDefaults standardUserDefaults] setObject:value forKey:@"ProductViewType"];
Run Code Online (Sandbox Code Playgroud)