Tag: nsuserdefaults

MKMapView显示不正确的保存区域

当我的iPhone应用程序正在closures时,我将地图区域保存为用户默认值: MKCoordinateRegion region = mapView.region; [[NSUserDefaults standardUserDefaults] setDouble:region.center.latitude forKey:@"map.location.center.latitude"]; [[NSUserDefaults standardUserDefaults] setDouble:region.center.longitude forKey:@"map.location.center.longitude"]; [[NSUserDefaults standardUserDefaults] setDouble:region.span.latitudeDelta forKey:@"map.location.span.latitude"]; [[NSUserDefaults standardUserDefaults] setDouble:region.span.longitudeDelta forKey:@"map.location.span.longitude"]; 当应用程序再次启动时,Ш以相同的方式读取这些值,以便用户可以看到与上次完全相同的地图视图: MKCoordinateRegion region; region.center.latitude = [[NSUserDefaults standardUserDefaults] doubleForKey:@"map.location.center.latitude"]; region.center.longitude = [[NSUserDefaults standardUserDefaults] doubleForKey:@"map.location.center.longitude"]; region.span.latitudeDelta = [[NSUserDefaults standardUserDefaults] doubleForKey:@"map.location.span.latitude"]; region.span.longitudeDelta = [[NSUserDefaults standardUserDefaults] doubleForKey:@"map.location.span.longitude"]; NSLog([NSString stringWithFormat:@"Region read : %f %f %f %f", region.center.latitude, region.center.longitude, region.span.latitudeDelta, […]

iOS 10,NSUserDefaults不起作用

我尝试写/读取/从[NSUserDefaults standardUserDefaults] ,但它似乎不工作。 我的代码是: [[NSUserDefaults standardUserDefaults] setObject:@"sampleString" forKey:@"sampleKey"]; [[NSUserDefaults standardUserDefaults] synchronize]; NSString *defaultsValue = [[NSUserDefaults standardUserDefaults] objectForKey:@"sampleKey"]; return defaultsValue; 此代码返回nil ,为Xcode 8.0testing版和iPhone 6s(10.0)模拟器。 但是,它返回的Xcode 8.0testing版和iPhone 6s(9.1)模拟器的sampleString 我正在用新系统testing我的应用程序。 难道我做错了什么? 或者有没有解决方法? 还是只是一个“testing”问题?

是否将卸载NSUserDefaults的应用程序卸载时存储在NSUserDefaults中?

如果我把一个标记(一个string)放到NSUserDefaults中,我们可以说它是一个传递给应用程序使用的REST API的参数,并且应用程序被卸载了,string是否会保留在设备上?

将数据存储到NSUserDefaults

在我的iPhone应用程序中,我有一个名为Contact的类,它由一个ABRecordRef组成,用作特定联系人的引用。 我需要将这些联系人的组存储在NSUserDefaults ,但是由于Contact是一个自定义类,所以事情并没有那么顺利。 任何想法在这种情况下做什么?

(Swift)将数组存储和检索到NSUserDefaults

我正在尝试将数组存储到NSUserDefaults并在需要填充UITableView时检索数组。 目前我正在使用: //store data NSUserDefaults.standardUserDefaults().setObject(myArray, forKey: "\(identity.text!)listA") NSUserDefaults.standardUserDefaults().synchronize() //retrieve data let tabledata = NSUserDefaults.standardUserDefaults().stringForKey("\(identity.text!)listA") myArray = [tabledata!] tableView.reloadData() 但是我明白了 致命错误:意外地发现nil而解包一个可选值 当试图加载数据。 我不确定问题是在存储还是在检索中。 有没有人通过这个之前呢?

如何使用swift将对象数组保存到NSUserDefault?

这是一个我定义的Place : class Place: NSObject { var latitude: Double var longitude: Double init(lat: Double, lng: Double, name: String){ self.latitude = lat self.longitude = lng } required init(coder aDecoder: NSCoder) { self.latitude = aDecoder.decodeDoubleForKey("latitude") self.longitude = aDecoder.decodeDoubleForKey("longitude") } func encodeWithCoder(aCoder: NSCoder!) { aCoder.encodeObject(latitude, forKey: "latitude") aCoder.encodeObject(longitude, forKey: "longitude") } } 这是我试图保存一个Place的数组: var placesArray = [Place] //… […]

何时以及为什么要使用NSUserDefaults的synchronize()方法?

所以我看了一下NSUserDefaults的synchronize()方法的苹果文档。 请参阅下面的参考: https://developer.apple.com/reference/foundation/userdefaults/1414005-synchronize 该页面当前显示为: 因为此方法是定期自动调用的,所以只有当您不能等待自动同步(例如,如果您的应用程序即将退出),或者如果要将用户默认更新为磁盘上的内容你没有做任何改变。 但是,我还是不明白什么时候应该调用这个方法呢? 例如,每当用户更改应用程序的设置时,是否应该调用它? 或者我应该只相信背景api将要处理? 在内存更改设置后立即离开视图会导致更改丢失? 另外,什么时候调用synchronize()失败会导致用户设置没有正确更改? 此外,调用此方法的成本(性能,内存或其他)是多less? 我知道这涉及到从磁盘读写数据,但是真的要在手机上付出很多的努力吗?

将数据传递给Apple Watch应用程序

我试图从我的应用程序传入数据到我的Apple Watch应用程序。 基本上,我使用的方法与创build当前小部件的方法相同,所以我通过NSUserDefaults传递数据。 问题是,当我运行我的应用程序时,数据不会像我所期望的那样更新Watch应用程序中的标签。 这是我有… override init(context: AnyObject?) { // Initialize variables here. super.init(context: context) // Configure interface objects here. NSLog("%@ init", self) var defaults = NSUserDefaults(suiteName: "group.AffordIt") var totalBudgetCalculation = "" if (defaults!.stringForKey("totalBudgetWidget") != nil) { println("Worked") totalBudgetCalculation = defaults!.stringForKey("totalBudgetWidget")! initialBudgetLabel.setText("Initial: \(totalBudgetCalculation)") } var currentBudgetCalculation = "" if (defaults!.stringForKey("currentBudgetWidget") != nil) { currentBudgetCalculation = […]

Swift – 使用NSUserDefaults保存高分

我正在用Swift做游戏。 我想用NSUserDefaults保存用户高分。 我知道如何在我的AppDelegate文件中创build一个新的NSUserDefaultsvariables: let highscore: NSUserDefaults = NSUserDefaults.standardUserDefaults() 但是,我如何设置/得到这个在我的视图控制器?

保存自定义对象到NSUserDefaults

我有一个新闻ViewController和一个TeamViewController 。 TeamViewController包含一个teamView的tableView,当被select时被添加到数组中。 我想将这个数组添加到NSUserDefaults这样我就可以从NewsController访问它们,它包含需要teamObjects的url请求。 但是我不断收到: “尝试插入非属性列表对象(”“) 我打开其他build议,如果有更好的方法比存储在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() […]