Tag: nsuserdefaults

NSUserDefaults或其他东西存储大型数组?

我有一个将JSON读入内存对象的应用程序。 我有一个对象代表用户,然后是一个自定义对象的数组。 这个数组通常是20-50个对象,但在罕见的情况下可以达到7-800个。 我已经阅读了一些关于这个线程,但发现很难挑选,因为我想要做的就是caching这个本地,没有更多,所以我可以从服务器获取较less。 我可以看到三个解决scheme: NSUserDefaults 。 不确定应用性能如何受到大型arrays的影响 CoreData / MagicalRecord 。 看起来不错,但有点复杂 与NSCoding /解码的Plist 定制解决scheme 我倾向于NSUserDefaults或Plist,因为它似乎是最简单的,我只想在应用程序启动/存在时读取和从内存中读取。 但是,是否有任何我应该知道的问题,比如在存储如此多的对象时的性能或应用程序启动时间 ? 有使用MagicalRecord的其他原因吗? 指针非常感谢。 编辑:添加了plist / NSCoding的select,忘记了。

NSUserDefaults多久同步一次?

NSUserDefaults的文档说周期性地调用了synchronise方法,但是没有提到频率。 10分钟的谷歌search没有透露任何东西。 synchronise方法调用的频率是多less?

将variables从一个Swift类传递给另一个类的最佳方法是什么?

假设我在一个类ViewController定义了variables,并想从另一个类访问该variables,比如说BLEHandler 。 我该如何去做呢? 我遇到了NSUserDefaults麻烦,所以除此之外的方法将不胜感激。

接近应用程序版本:2个快速问题

当我接近释放我的应用程序,我试图确保我使用稳定的代码来检查应用程序是否已经启动之前(为了执行一些第一次设置)。 这(显然是没有考虑到应用程序版本和更新没有装饰的方法)几乎坚实的方式来确定应用程序是否已经启动? 在我的应用程序委托didFinishLaunchingWithOptions方法中,我每次执行以下操作: NSUserDefaults *defaults =[NSUserDefaults standardUserDefaults]; if(![defaults objectForKey:@"not_first_launch"]) { NSLog(@"This is the first time the app has been launched.\nPerforming first-time setup procedures…"); [self runFirstTimeSetup]; } 我的第二个问题基本上是,我可以假设,当我释放一个应用程序更新,用户的文件目录为我的特定应用程序的沙箱将留下不清楚? 应用程序更新是否简单地添加到目录,而不是擦干净,重新安装? 即使在更新应用程序时,我也需要用户的文件(很明显),但是我不想做出错误的假设,并且每次发布更新时都会丢失数据。 谢谢!

当我打电话时如何保留viewController中的uitextfield值?

我有一个主页有我的第一个视图中的3个文本框,当我导航到不同的视图,并返回到我的第一个视图(即我input所有的价值,我移动到下一页)。我希望我的3文本框保留其值我回到我的主页这里我的示例代码: NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; NSString *mobile = MobileNum.text; [defaults setObject:mobile forKey:self.MobileNum.text]; NSString *amountText = amount.text; [defaults setObject:amountText forKey:self.amount.text]; [defaults synchronize]; NSString *temp = [defaults objectForKey:self.MobileNum.text]; NSString *temp1 = [defaults objectForKey:self.amount.text]; NSLog(@"%@ %@",temp,temp1);

如何在Swift中处理NSUserDefaults中的非可选值

要从NSUserDefaults得到一个值,我会做这样的事情: let userDefaults = NSUserDefaults.standardUserDefaults() if let value = userDefaults.objectForKey(key) { print(value) } 但是,这些方法不会返回可选项: boolForKey (如果未设置,则默认为false ) integerForKey (如果未设置,则默认为0 ) floatForKey (如果未设置,则默认为0.0 ) doubleForKey (如果未设置,则默认为0.0 ) 在我的应用程序,我想使用保存的整数值,如果它已经被设置。 如果以前没有设置,我想使用我自己的默认值。 问题是0是我的应用程序的有效整数值,所以我无法知道0是否是以前保存的值,或者如果它是默认的未设置值。 我将如何处理这个?

NSUserDefaults,NSCoder,自定义类 – iPhone应用程序的问题

我有一个错误,我想我在做以下过程中的错误。 首先,我有一个class级联系人: @interface Contact : NSObject<NSCoding> { @private ABRecordRef ref; NSString *first; NSString *last; bool selected; NSString *phoneNumber; } 在Contact的实现中,我有: – (void)encodeWithCoder:(NSCoder *)encoder { [encoder encodeObject:first forKey:@"First"]; [encoder encodeObject:last forKey:@"Last"]; [encoder encodeObject:[NSNumber numberWithInteger: ABRecordGetRecordID(ref)] forKey:@"Ref" ]; [encoder encodeObject:first forKey:@"PhoneNumber"]; } – (id)initWithCoder:(NSCoder *)decoder { self = [[Contact alloc] init]; first = [decoder decodeObjectForKey:@"First"]; last = […]

如何维护NSUserDefaults中的单元格select?

https://github.com/lminhtm/LMDropdownView 我怎样才能保存最后select的单元格在NSUserDefault? 当应用程序重新打开时,应该保持select。 目前,每当应用程序打开时,都会select默认单元格。 – (void)viewDidLoad { [super viewDidLoad]; self.mapTypes = @[@"Standard", @"Satellite", @"Hybrid"]; self.currentMapTypeIndex = 0; self.dropPinButton.layer.cornerRadius = 5; self.removeAllPinsButton.layer.cornerRadius = 5; self.moreButton.layer.cornerRadius = 5; self.moreButton.layer.shadowOffset = CGSizeZero; self.moreButton.layer.shadowOpacity = 0.5; self.moreButton.layer.shadowRadius = 1.0; } – (void)viewDidLayoutSubviews { [super viewDidLayoutSubviews]; self.menuTableView.frame = CGRectMake(CGRectGetMinX(self.menuTableView.frame), CGRectGetMinY(self.menuTableView.frame), CGRectGetWidth(self.view.bounds), MIN(CGRectGetHeight(self.view.bounds) – 50, self.mapTypes.count * 50)); self.moreBottomView.frame = CGRectMake(CGRectGetMinX(self.moreBottomView.frame), […]

如何将UIPickerView的第二行保存到NSUserDefaults?

我有两行pickerView,我需要保存两个NSUserDefaults的位置。 我用这段代码成功保存了第一行: – (void)pickerView:(UIPickerView *)thePickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component { NSInteger selectedRow = [thePickerView selectedRowInComponent:0]; [[NSUserDefaults standardUserDefaults] setInteger:selectedRow forKey:@"picker"]; } 而我不知道如何添加第二个。 有了这个代码,我带回了这个位置: -(void)viewWillAppear: (BOOL) animated { NSUserDefaults *pickerViewSelectionDefaults = [NSUserDefaults standardUserDefaults]; [picker selectRow:[pickerViewSelectionDefaults integerForKey:@"picker"] inComponent:0 animated:YES]; [picker selectRow:[pickerViewSelectionDefaults integerForKey:@"picker"] inComponent:1 animated:YES]; }

点击像所有的视图应该显示如同C

当我selectThrowback – >如果我点击像button那样的描述发生像button改变不像和“像计数= 1099”增加。 如果我按回我希望这不像显示旁边显示在一个标签,并再次select回滚button应该显示不像和像计数应为1100.请帮助我如何实现这一目标? //DetailOfUser.m #impot"DetailsOfStories.h" @interface DetailOfUser ()<UITableViewDelegate,UITableViewDataSource> { NSMutableArray *arrayAboutList; DetailsOfStories *viewController; } – (UITableViewCell *)tableView:(UITableView *)theTableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *cellIdentifier = @"cell"; UILabel *title=[(UILabel *)cell viewWithTag:2]; title.text=[NSString stringWithFormat:@"%@", [arrayAboutList[indexPath.row] valueForKey:@"title"]]; return cell; } -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ viewController=[self.storyboard instantiateViewControllerWithIdentifier:@"DetailsOfStories"]; viewController.descriptionList = [arrayAboutList[indexPath.row] mutableCopy]; [self.navigationController pushViewController:viewController animated:YES]; } @end //DetailsOfStories.m […]