我知道他们已经有很多关于这个问题的问题,但我的情况有点不同。
我想要做的是在NSUserDefaults中保存“类属性”。要创建“类属性”,我这样做了:
// MyClass.h
#import <Foundation/Foundation.h>
static NSString *userIndex;
@interface PlanGenerator : NSObject
+ (void)setUserIndex:(NSString *)userIndexNew;
+ (NSString *)userIndex;
@end
// MyClass.m
#import "MyClass.h"
@implementation MyClass
+ (void)setUserIndex:(NSString *)userIndexNew
{
userIndex = userIndexNew;
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
[userDefaults setObject:userDefaults forKey:@"UserIndex"];
[userDefaults synchronize];
}
+ (NSString *)userIndex
{
return userIndex;
}
@end
但是当我想要setObject:userIndex时,应用程序崩溃并出现错误:
attempt to insert non-property list object <NSUserDefaults: 0x109409e50> for key UserIndex'
任何人都知道如何解决这个问题?
答案 0 :(得分:1)
您的代码似乎有些令人困惑,因为异常声称使用密钥UserJahrg
而不是UserIndex
,但问题是您尝试将userDefaults
添加到自身:
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
[userDefaults setObject:userDefaults forKey:@"UserIndex"];
// ^^^^^^^^^^^^
你可能意味着userIndex
:
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
[userDefaults setObject:userIndex forKey:@"UserIndex"];