Tag: nsuserdefaults

iOS存储对象数组

在我的应用程序中,我实现了几个tableviewcontrollers,为每个单元显示一个NSObject。 每个tableviewcontroller都有不同的“filter”应用于数组,所以每个表都显示这些对象的特定组。 在每个tableviewcontroller的viewdidload我从NSUserdefaults加载我的数组,过滤它,并显示它。 这工作得很好,我正在使用NSCoder获取对象进行编码/解码存储。 仅用于开发目的,我编程创build每个对象(initWithName:(NSString *)名称等),将所有对象添加到数组并将其存储。 但我相信这不是最终的解决scheme。 问题:我正在寻找一种方法来实现这个对象的数组,而不用手工创build每个对象的代码。对象的数量是固定的,它们的内容不能改变。 他们只需要加载。 添加:也许在将来的更新中,我将添加新项目的列表。 我该怎么做? 所以我实现了@Luke史密斯说,它完美的作品! 谢谢! NSString *plistPath = [[NSBundle mainBundle] pathForResource:@"MyPlist" ofType:@"plist"]; NSArray *allElements = [[NSArray alloc] initWithContentsOfFile:plistPath]; for (NSDictionary *newObject in allElements){ Object *tempObject = [[Object alloc] init]; tempObject.Type = [newObject objectForKey:@"Type"]; tempObject.isFavorite = [newObject objectForKey:@"isFavorite"]; [Elements addObject:tempObject];//MutableArray storing all Elements } 但是,当我做了一些头脑风暴,我得出结论,我需要编辑一些条目。 不幸的是,因为.plist是在MainBundle它不可编辑…是否有可能从一开始(可能在xcode)将.plist存储在文档目录? 这是我的.plist: <plist […]

如何使用NSUserDefaults保存两个文本字段的数据?

如何在iOS上使用NSUserDefaults保存两个文本字段的数据?

在keychain / userdefaults中保存atomic属性是否有优势?

为了在NSUserDefaults / keychains中存储一些值,有没有primefaces或非primefaces属性的好处?

并不是所有的NSUserDefaults都在应用重新启动时被恢复

我将2个自定义列表转换​​成一个JSONstring,并将其存储NSUserDefaults。 像这样的东西: – NSUserDefaults.StandardUserDefaults.SetString(JsonConvert.SerializeObject(stationList.Take(50)), "StationList1"); NSUserDefaults.StandardUserDefaults.SetString(JsonConvert.SerializeObject(stationList.Skip(50).Take(50)), "StationList2"); 如果我尝试和保存他们像下面后立即检索他们,我得到保存的值: – savedStationList1 = NSUserDefaults.StandardUserDefaults.StringForKey("StationList1"); savedStationList2 = NSUserDefaults.StandardUserDefaults.StringForKey("StationList2"); 但问题是,如果我重新启动应用程序,并尝试在代码的另一部分获得上述值,我只得到的价值: – savedStationList2 = NSUserDefaults.StandardUserDefaults.StringForKey("StationList2"); 而下面的值始终为空: – savedStationList1 = NSUserDefaults.StandardUserDefaults.StringForKey("StationList1"); 我不覆盖这些值在应用程序的任何地方。 有没有办法解决这个问题? 任何帮助表示赞赏

将用户默认值添加到黑暗模式

这是一个较早的职位的延续。 我想知道的是如何在整个应用程序中添加黑暗模式的用户默认值。 请不要留意在上一篇文章中提到UserDefaults的代码,我正在关注一个教程 ,只是复制了他所做的一切,对于User Defaults什么都不了解。 整个黑暗模式运行在整个应用程序的美丽。 我只需要知道如何做所有的用户默认。 如果你有任何问题随时问。 下面的代码是自定义单元格下面是在设置视图控制器中,将应用程序更改为黑暗模式。 一切都很好,而且应该如此。 我只需要把用户的默认值放入操作。 import UIKit class DarkModeTableViewCell: UITableViewCell { var DarkisOn = Bool() let userDefaults = UserDefaults.standard @IBOutlet var darkModeSwitchOutlet: UISwitch! override func awakeFromNib() { super.awakeFromNib() NotificationCenter.default.addObserver(self, selector: #selector(darkModeEnabled(_:)), name: .darkModeEnabled, object: nil) NotificationCenter.default.addObserver(self, selector: #selector(darkModeDisabled(_:)), name: .darkModeDisabled, object: nil) } override func setSelected(_ selected: Bool, animated: […]

NSUserDefaults – 保存UIImageView位置

在我的应用程序中,我有一个UIImageView和一个UIButton。 UIImageView有一个UIPanGestureRecognizer,可以在屏幕上拖动。 我已经写了: int defaultBallLocation = ball.center; 在我的- (IBAction)saveButton 和Xcode说“不能将CGPoint与int关联”。 那么,怎样才能通过按“保存”在屏幕上保存球(UIImageView)的位置,然后通过NSUserDefaults按“加载”加载保存的位置? 我以前曾经使用过NSUserDefaults,但只能使用UISegmentedController。 谢谢!

NSUserDefaults数据是否同步到iTunes?

我知道NSUserDefaults数据是未encryption的,不应该用来存储敏感信息。 我正试图了解有多less人可以得到这些信息。 这个线程显示它只是iphone文件系统上的一个纯文件。 在iPhone同步期间,如果启用了应用程序同步,这个文件会被传输到用户的计算机上吗? 如果是这样,那么读取存储在NSUserDefaults中的信息是非常容易的

UIAlertView需要时间来显示

我想显示按下button的警报视图。 显示它,但在屏幕上显示需要太多时间。 这里是我按下button的function: -(void)saveAndClose:(id)sender { waitForOCR=[[UIAlertView alloc] initWithTitle:@"Processing…" message:@"Please wait." delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:nil, nil]; waitForOCR.delegate=self; [waitForOCR show]; if(!isCancelled){ NSMutableArray *dateSaved=[[NSMutableArray alloc] initWithArray:[[NSUserDefaults standardUserDefaults] arrayForKey:@"dateCaptured"]]; NSDateFormatter *dateText=[[NSDateFormatter alloc] init]; [dateText setDateFormat:@"yyyy-MM-dd"]; NSDate *now=[NSDate date]; NSString *dateValue=[dateText stringFromDate:now]; [dateSaved addObject:dateValue]; NSMutableArray *timeSaved=[[NSMutableArray alloc] initWithArray:[[NSUserDefaults standardUserDefaults] arrayForKey:@"timeCaptured"]]; NSDateFormatter *timeText=[[NSDateFormatter alloc] init]; [timeText setDateFormat:@"HH:mm:ss"]; NSString *timeValue=[timeText stringFromDate:now]; [timeSaved addObject:timeValue]; […]

在NSUserDefaults中保存NSManagedObject

大家好(抱歉我的英文不好,我是法文), 我试图把我NSManagedObject到NSUserDefaults检索它的关系。 基本上我用NSCoding和我已经实现了所需的方法,但是因为它是NSManaged对象,init方法的签名是:init(实体:NSEntityDescription,insertIntoManagedObjectContext上下文:NSManagedObjectContext?)。 消息是“NSInvalidArgumentException”,原因是:“非法尝试在不同上下文中的对象之间build立关系”shop“ 如果我在Address: self.shop = shop注释这行,它会一次又一次地创build我的实体。 这是我的代码: 把商店放在NSUserDefaults : let selectedShop = shopFetchedResultsController!.fetchedObjects![indexPath.row] as! Shop let encodedShop = NSKeyedArchiver.archivedDataWithRootObject(selectedShop) NSUserDefaults.standardUserDefaults().setObject(encodedShop, forKey: "currentShop") 并检索它: let encodedShop = NSUserDefaults.standardUserDefaults().objectForKey("currentShop") as! NSData let currentShop = NSKeyedUnarchiver.unarchiveObjectWithData(encodedShop) as! Shop 实体店: import Foundation import CoreData @objc(Shop) class Shop: NSManagedObject, NSCoding { @NSManaged var name: String @NSManaged var phoneNumber: […]

iOS Swift 3:从共享扩展共享数据到主机应用程序

您好,我已经实现了我的应用程序的共享扩展,从图库中挑选图像并发送到特定的视图。 现在的问题是当我试图保存图像arrays(从图库中挑选的图像) func manageImages() { let content = extensionContext!.inputItems[0] as! NSExtensionItem let contentType = kUTTypeImage as String for (index, attachment) in (content.attachments as! [NSItemProvider]).enumerated() { if attachment.hasItemConformingToTypeIdentifier(contentType) { attachment.loadItem(forTypeIdentifier: contentType, options: nil) { data, error in if error == nil, let url = data as? URL { do { let imageData = try Data(contentsOf: url) […]