Tag: nsuserdefaults

IOS:用NSUserDefault存储一个数组

我想存储一个数组NSUserDefault ,然后,我把applicationDidEnterBackground [[NSUserDefaults standardUserDefaults] setObject:myArray forKey:@"myArray"]; 并在application didFinishLaunchingWithOption myArray= [[NSMutableArray alloc] initWithArray:[[NSUserDefaults standardUserDefaults] objectForKey:@"myArray"]]; 多任务设备可以,但是对于非多任务设备,我该如何解决?

迅速改变语言

现在我知道苹果不推荐这个。 通常,您不应该在应用程序中更改iOS系统语言(通过使用AppleLanguages首选项)。 这违背了在“设置”应用程序中切换语言的基本iOS用户模型,并且还使用了未logging的首选项,这意味着在将来的某个时刻,关键名称可能会更改,这会破坏您的应用程序。 但是,这是一个应用程序,即时改变语言是合理的,只要相信我就可以了。 我也知道这个问题在这里被问到: 在运行iOS中,以编程方式更改语言 。 然而,这是越来越老,我想知道是否有任何更新,更好或更简单的方法来做到这一点。 目前在我的应用程序中,我有一个语言select屏幕。 点击该视图中的button,使用与该button关联的语言来调用以下function: func changeLang(language: String) { if language != (currentLang as! String?)! { func handleCancel(alertView: UIAlertAction!) { } var alert = UIAlertController(title: NSLocalizedString("language", comment: "Language"), message: NSLocalizedString("languageWarning", comment: "Warn User of Language Change Different Than Defaults"), preferredStyle: UIAlertControllerStyle.Alert) alert.addAction(UIAlertAction(title: "Cancel", style: UIAlertActionStyle.Cancel, handler:handleCancel)) alert.addAction(UIAlertAction(title: "Yes", style: UIAlertActionStyle.Default, […]

尝试插入非属性值Objective C

嗨,我想创build一个餐馆对象,我的应用程序有不同的餐馆列表,我希望能够为用户添加优惠餐厅,这个代码是不工作 – (IBAction)toggleFav:(id)sender { Restaurant *resto = [self restaure]; NSMutableDictionary *dic = [[NSMutableDictionary alloc] init]; [dic setObject:resto.price forKey:@"restoPrice"]; [dic setObject:resto.restaurantId forKey:@"restaurantId"]; [dic setObject:resto.restoAbout forKey:@"restoAbout"]; [dic setObject:resto.restoAddress forKey:@"restoAddress"]; [dic setObject:resto.restoBeverages forKey:@"restoBeverages"]; [dic setObject:resto.restoCategory forKey:@"restoCategory"]; [dic setObject:resto.restoEmail forKey:@"restoEmail"]; [dic setObject:resto.restoLogo forKey:@"restoLogo"]; [dic setObject:resto.restoName forKey:@"restoName"]; [dic setObject:resto.restoPhone forKey:@"restoPhone"]; [dic setObject:resto.restoCity forKey:@"restoCity"]; NSArray *dicArray = [dic allKeys]; if([sender isSelected]){ […]

使用NSUserdefaults将数据从一个ViewController传递到另一个ViewController

我需要从一个ViewController的数据到另一个ViewController在这里我有多个Textfields在第一个ViewController然后它将传递SecondViewController无论我在FirstViewControllerinput的数据。 你能不能请build议我

有没有比用NSCoder编码和解码所有东西更好的方式来保存自定义类到NSUserDefaults?

我当前的类有大约50行只是编码和解码variables,以便我的类是NSUserDefaults兼容。 有没有更好的方法来处理这个问题? 例: init(coder aDecoder: NSCoder!) { lightEnabled = aDecoder.decodeBoolForKey("lightEnabled") soundEnabled = aDecoder.decodeBoolForKey("soundEnabled") vibrateEnabled = aDecoder.decodeBoolForKey("vibrateEnabled") pulseEnabled = aDecoder.decodeBoolForKey("pulseEnabled") songs = aDecoder.decodeObjectForKey("songs") as! [Song] currentSong = aDecoder.decodeIntegerForKey("currentSong") enableBackgroundSound = aDecoder.decodeBoolForKey("enableBackgroundSound") mixSound = aDecoder.decodeBoolForKey("mixSound") playSoundInBackground = aDecoder.decodeBoolForKey("playSoundInBackground") duckSounds = aDecoder.decodeBoolForKey("duckSounds") BPMBackground = NSKeyedUnarchiver.unarchiveObjectWithData(aDecoder.decodeObjectForKey("BPMBackgorund") as! NSData) as! UIColor! BPMPulseColor = NSKeyedUnarchiver.unarchiveObjectWithData(aDecoder.decodeObjectForKey("BPMPulseColor") as! NSData) as! UIColor! TempoBackGround = […]

如何在NSUserDefaults中使用(多种types)保存数组

这很简单,但似乎无法find正确的信息来解决在用户默认值中保存这样的数组。 它说这不是一个属性,NSUser默认Excepts。 码: var notificationList: [(type: String,imageName: String, text: String, date: String, seen: Bool)] = [(type: "Default",imageName: "ClearPartioned", text: "", date: "", seen: true)] if (UserDefaults.standard.object(forKey: "notificationList")) == nil { // first time launching print("making notification list") UserDefaults.standard.set(notificationList, forKey: "notificationList") UserDefaults.standard.synchronize() print("\(notificationList)") } else { print("getting saved array") notificationList = (UserDefaults.standard.object(forKey: "notificationList") as! [(type: String, […]

如何在iOS中使用NSUserDafaults保存和检索NSObject类

您好我想保存和检索使用NSUserDefaults NSObject类为我写下面的代码,但我得到像下面的exception 由于未捕获exception“ NSInvalidArgumentException ”而终止应用程序,原因:“尝试为键DATA插入非属性列表对象” 为了节省: – SavingBean*savingbean = [[SavingBean alloc]init]; [savingbean savingData:userName.text :passWord.text]; NSUserDefaults * defaults = [[NSUserDefaults alloc]init]; [defaults setObject:savingbean forKey:@"DATA"]; 检索: – defaults = [[NSUserDefaults alloc]init]; savingbean = [defaults objectForKey:@"DATA"]; NSLog(@"Username is===>%@",savingbean.userName); NSLog(@"Password is===>%@",savingbean.passWord); ModelClas: – .h文件: – #import <Foundation/Foundation.h> @interface SavingBean : NSObject{ NSString *userName; NSString *passWord; } @property(nonatomic, retain) NSString […]

带有应用程序组的NSUserDefault在iOS 8 Beta3中不起作用

我必须保存Boolean值NSUserDefault在我的应用程序与custom keyboard extension和共享与应用程序组。 我的代码在iOS 8 Beta1中工作。 self.defaults = [NSUserDefaults standardUserDefaults]; if([self.defaults boolForKey:@"BlackKey"]) { NSLog(@"Black"); } else { NSLog(@"White"); } 但不是在iOS 8 Beta3。 当我从NSUserDefault检索Boolean值,它不会返回任何内容,我无法从自定义键盘扩展加载。 我也尝试在NSUserDefault使用initWithSuiteName 。 我只有一个这样的问题或iOS 8 Beta3的错误?

iOS – setObject与Synchronize

新手问题。 如果我设置一个对象到NSUserDefault,我也需要同步,以确保对象永久返回到NSUserDefault数据库? 我想问的是,“setobject”会将对象永久地放回到数据库中,还是放入需要同步的临时存储器中,以确保永久存储? 例如://下面我添加一行数据后,在NSUserDefaults中放置一个新的副本 userDefaults.setObject(newMutableList, forKey: "itemList") //我是否也需要立即同步以确保数据库永久更新? userDefaults.synchronize() 我的代码工作没有同步,这意味着我不需要它。 但是我想确保在未来的另一种情况下跳过同步的使用不会导致问题。 提前致谢。

在iOS上存储对象 – 最佳解决scheme?

我正在构build一个博客的应用程序,用户可以保存他们最喜欢的职位。 当他们这样做,我想存储我的对象,其中包含:post的url,标题和图片的url。 我应该去UserDefaults (以前NSUserDefaults )或立即开始与Core Data ?