以下两行是否相同?
1.
[[NSUserDefaults standardUserDefaults] removeObjectForKey:@"example key"]
2.
[[NSUserDefaults standardUserDefaults] setObject:nil forKey:@"example key"]
是这样的吗?当您在App Store上向应用程序提交更新时,NSUserDefaults会重置吗?
我的应用程序在更新时崩溃但在完全下载时没有崩溃 - 所以我试图确定在更新的会话中可能与新下载的会话有什么不同.
干杯,尼克.
如何使用UserDefaults在Swift中保存/检索字符串,布尔值和其他数据?
我想保存一些简单的数据.在iPhone上,我可以NSUserDefaults在Objective-C中使用它.
Android中的类似命令是什么?
我只是保存了一些变量,只要安装了应用程序就可以重用.我不想使用复杂的数据库来做到这一点.
这可能听起来真的NOOB!我想检查是否是用户第二次进入我的应用程序,以便保持我正在使用的运行计数NSUserDefaults.我在我rootViewController的viewDidLoad方法中实现了以下代码:
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
NSLog(@"hello %ld", (long)[userDefaults integerForKey:@"runCount"]);
if ([userDefaults integerForKey:@"runCount"] != 1) {
//not the 2nd run
[userDefaults setInteger:1 forKey:@"runCount"];
NSLog(@"not 2nd run");
} else {
//second run or more
NSLog(@"2nd run");
}
[userDefaults synchronize];
Run Code Online (Sandbox Code Playgroud)
一切正常,但问题是当我卸载(删除并重新安装)应用程序时,根据此处和此处的数据应该被清除,但它不是,并且在重新安装应用程序之前,以前的数据仍然显示.我在iOS模拟器上使用xCode6-beta运行我的应用程序,并在iOS 8上定位应用程序
当rootViewController我的应用程序的加载,我希望能够检查用户是否登录凭据已保存到NSUserDefaults.
基本上,当用户加载应用程序并且他/她没有保存她的登录凭证时,modalAlertView将推送,并且用户将能够适当地保存他们的凭证.这会将这些UITextField字符串保存到相应的NSUserDefault对象.但是,有可能,当这个保存完成后,我可以创建NSUserDefault一个布尔值的对象并将值更改为是吗?
这意味着布尔值已经设置为no,并且当用户保存其登录凭据时,它还将布尔值更改为是?
iphone boolean objective-c nsuserdefaults modalviewcontroller
我目前正在尝试将自定义Swift类保存到NSUserDefaults.这是我的Playground的代码:
import Foundation
class Blog : NSObject, NSCoding {
var blogName: String?
override init() {}
required init(coder aDecoder: NSCoder) {
if let blogName = aDecoder.decodeObjectForKey("blogName") as? String {
self.blogName = blogName
}
}
func encodeWithCoder(aCoder: NSCoder) {
if let blogName = self.blogName {
aCoder.encodeObject(blogName, forKey: "blogName")
}
}
}
var blog = Blog()
blog.blogName = "My Blog"
let ud = NSUserDefaults.standardUserDefaults()
ud.setObject(blog, forKey: "blog")
Run Code Online (Sandbox Code Playgroud)
当我运行代码时,我收到以下错误
执行被中断,原因:信号SIGABRT.
在最后一行(ud.setObject...)
在带有消息的应用程序中,相同的代码也会崩溃
"属性列表格式无效:200(属性列表不能包含'CFType'类型的对象)"
有人可以帮忙吗?我在Maverick上使用Xcode 6.0.1.谢谢.
我正在尝试检查用户默认是否存在,如下所示:
func userAlreadyExist() -> Bool {
var userDefaults : NSUserDefaults = NSUserDefaults.standardUserDefaults()
if userDefaults.objectForKey(kUSERID) {
return true
}
return false
}
Run Code Online (Sandbox Code Playgroud)
但是,即使对象不存在,它也总是会返回真实的东西吗?这是检查存在的正确方法吗?
我需要创建一个数组来添加这种格式的对象,如Swift中的字典:["key1":"value1","key2":"value2"]
当我尝试保存它时,NSUserDefaults一切都是正确的,但是当NSUserDefaults用键读取时这会崩溃.我的var obj需要什么类型的数据?
let def = NSUserDefaults.standardUserDefaults()
var key = "keySave"
var element: AnyObject!
var array1: [AnyObject!] = []
array1.append(["key1": "val1", "key2": "val2"])
array1.append(["key1": "val1", "key2": "val2"])
//save
var savestring : [AnyObject!]
savestring = array1
var defaults = NSUserDefaults.standardUserDefaults()
defaults.setObject(savestring, forKey: key)
defaults.synchronize()
//read
var obj: [AnyObject!] = []
if(obj != nil){
print("size: ")
print(obj.count) //vary long value confused..
element = obj[0] //crash
print(element.objectForKey("key1"))
}
Run Code Online (Sandbox Code Playgroud) 我有新闻ViewController和TeamViewController.所述TeamViewController含有选择加入到阵列时teamObjects的的tableView.我想添加这个数组,NSUserDefaults所以我可以从NewsController包含url请求的地方访问它们,其中需要teamObjects.但是我一直得到:
'尝试为关键团队插入非属性列表对象("")
如果有更好的方法而不是存储它,我愿意接受其他建议 NSUserDefaults
didSelectRowAtIndexPath 方法
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
tableView.deselectRowAtIndexPath(indexPath, animated: true)
let team = self.teamArray[indexPath.row] as Team
var removed = false
for (index, value) in enumerate(self.teamSelected) {
if (value == team) {
self.teamSelected.removeAtIndex(index)
removed = true
}
}
if (!removed) {
self.teamSelected.append(team)
}
var userDefaults = NSUserDefaults.standardUserDefaults()
userDefaults.setValue(self.teamSelected, forKey: "teams")
userDefaults.synchronize()
tableView.reloadData()
}
Run Code Online (Sandbox Code Playgroud)
我的目标
class Team: NSObject{
var id: Int!
var name: NSString!
var …Run Code Online (Sandbox Code Playgroud) nsuserdefaults ×10
ios ×5
swift ×5
iphone ×2
xcode6 ×2
android ×1
boolean ×1
crash ×1
ios8 ×1
nscoding ×1
objective-c ×1
sigabrt ×1
userdefaults ×1