我需要在NSUserDefault中保存用户名和密码.我打算在IB中放置一个圆形的矩形按钮.在按下时,用户名和密码将保存在NSUserDefault中,这样当用户杀死应用程序并尝试在一段时间后再次登录时,他们不需要再次输入他们的登录详细信息.任何帮助将受到高度赞赏.
谢谢和最好的问候,
个人计算机
我很只是想保存NSMutableArray/ NSArray的structS IN NSUserDefaults:
typedef struct {
int key;
} provision;
provision p1;
p1.key = 4;
NSValue *p1Value = [NSValue value:&p1 withObjCType:@encode(provision)];
provision p2;
p2.key = 5;
NSValue *p2Value = [NSValue value:&p2 withObjCType:@encode(provision)];
NSMutableArray *provisions = [[NSMutableArray alloc] init];
[provisions addObject:p1Value];
[provisions addObject:p2Value];
[[NSUserDefaults standardUserDefaults] setObject:provisions forKey:@"Provisions"];
Run Code Online (Sandbox Code Playgroud)
我按照指南这里存储了所有的结构NSValue.但是最后一行会导致运行时错误:
*因未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:'* - [NSUserDefaults setObject:forKey:]:尝试为关键项目插入非属性列表对象("<04000000>","<05000000>")
我究竟做错了什么?
我不想问简单的问题,但今天我很难过.我需要做的就是查看应用程序启动时NSUserdefaults中是否设置了值.如果不是那么添加一个值.而已.每次我启动我的应用程序,我都会得到这个结果
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool
{
let defaults = NSUserDefaults.standardUserDefaults()
var returnValue: [String]? = NSUserDefaults.standardUserDefaults().objectForKey("BGColorStr") as? [String]
println("returnValue: \(returnValue) ...")
if (returnValue == nil)
{
println("Value is nil")
defaults.setObject("Default", forKey:"BGColorStr")
defaults.synchronize()
}
else
{
println("Value is NOT nil")
}
// Override point for customization after application launch.
return true
}
returnValue: nil ...
Value is nil
Run Code Online (Sandbox Code Playgroud) 假设我在一个类中定义变量ViewController,并且想要从另一个类访问该变量,比如说BLEHandler.我该怎么做呢?我遇到了麻烦NSUserDefaults,所以除此之外的方法将不胜感激.
我的应用程序中有以下代码
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:kArchivedUsername forKey:userID];
[defaults synchronize];
NSLog(@"saved: %@", [defaults stringForKey:kArchivedUsername]);
Run Code Online (Sandbox Code Playgroud)
但是,输出是这样的:
2016-04-07 15:50:44.560 BP (Test)[18357:464518] saved: (null)
Run Code Online (Sandbox Code Playgroud)
谁能告诉我为什么以及我能做些什么呢?
我试图在"用户"达到限制时节省时间.所以限制是10例如,一旦达到这个限制,我想节省当前时间.然后他必须等待1个小时才能继续比赛.我开始这样做了,但是当我尝试这个时,我已经收到错误了:
var CurrentTime = NSDate()
CurrentTime = NSUserDefaults.standardUserDefaults()
Run Code Online (Sandbox Code Playgroud)
错误:
无法将"NSUserDefaults"类型的值指定为"NSDate"类型
似乎swift无法将'NSDate'保存为'NSUserDefault'.
我正在使用NSUserDefaults来检索值.例如用户名.
我已经创建了一个constants.h文件,将它添加到我的viewcontroller中
#import "constants.h"
Run Code Online (Sandbox Code Playgroud)
在constants.h中 - 用户名定义为
#define USERNAME @"Monty Python"
Run Code Online (Sandbox Code Playgroud)
然后在我的viewDidLoad中,我尝试读取这样的值
NSString *userName = [[NSUserDefaults standardUserDefaults] stringForKey:USERNAME];
Run Code Online (Sandbox Code Playgroud)
但是userName总是nil/null - 我的其他键也是如此.
NSUserDefaults如何知道使用我的Constants.h文件?我的代码是否在正确的"位置"?为什么我的值总是为零 - 在调试器和NSLog中?
谢谢
我之前有一个类似的问题,但是添加分数却从未解决过,所以我想我现在就问它并同时修复这两个问题.我做了一个商店,人们可以在那里购买硬币,这些硬币将被添加到他们已有的硬币中.他们已经拥有的硬币可以通过以下方式加载:
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSString *loadcoins = [defaults objectForKey:@"savedcoins"];
[coinsdisplay setText:loadstring];
Run Code Online (Sandbox Code Playgroud)
我有一个按钮,你可以买100个硬币
-(IBAction)savecoins100:(id)sender {
NSString *savecoins = @"100";
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:savecoins forKey:@"savedcoins"];
[defaults synchronize];
}
Run Code Online (Sandbox Code Playgroud)
我想要的是新的字符串不是@"100"而是100 +以前的硬币现在这将是loadcoins但我不知道如何正确编码这可以有人帮助我吗?
谢谢