Tag: nsuserdefaults

NSString里面的问题将会消失

我现在正在和这段代码作斗争,我真的很感激你的洞察力。 所以这里是… 在我的.h文件中声明的fileName NSString *fileName; 后来又如 @property (nonatomic, copy) NSString *fileName; viewWillDisappear不可访问。 它只是显示为零对象,或一些奇怪的价值,当我debugging。 当我debugging时,我的控制台显示这个味精: 打印fileName的说明: FileNumber1 当我到达viewWillDisappear我的控制台显示这个: 打印fileName的说明: 是的,只是没有文件名..价值只是消失..我只是不知道为什么! 更多细节 : 在我的init方法中,我做了以下,它工作正常。 fileName = [[NSString alloc] initWithString:(NSString *)CFURLGetString(pdfURL)]; fileName = [[fileName lastPathComponent] stringByDeletingPathExtension]; fileName = [fileName stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 在整个程序中,我可以访问fileName就好了,但在viewWillDisappear我试图通过尝试以下保存到我的standardUserDefaults : NSUserDefaults *ud = [[NSUserDefaults standardUserDefaults] autorelease]; NSArray *tmp = [NSArray arrayWithArray:someMutableArray]; [ud setObject:tmp forKey:fileName]; // THE […]

添加到以前保存的NSUserDefaults

我正在为iOSdevise一款游戏,其中包括每个级别的评分系统。 在这里我有一些代码,通过使用委托获取NSString ( passedValue1 )。 下面是代表的代码: LevelCompleteLevel1 。H #import "ViewController.h" @interface LevelCompleteLevel1 : UIViewController{ IBOutlet UILabel *label; ViewController *secondviewData; } @property (nonatomic, retain)ViewController*secondviewData; .M ViewController *second = [[ViewController alloc] initWithNibName:nil bundle:nil]; self.secondviewData = second; secondviewData.passedValue1 = label.text; [self presentModalViewController:second animated:YES]; 在.m我发送一个值从当前view controller的标签到另一个view controller我发送的值被称为passedValue1值1 一旦我发送了我需要显示并保存在ViewController ViewController 。H @interface ViewController : UIViewController{ IBOutlet UILabel *label; NSString *passedValue1; […]

“string”与“AnyObject”错误不相同

我试图通过NSUserDefaults从我的应用程序传递数据到Apple Watch应用程序时遇到问题。 每当我尝试检索存储的数组,我得到的错误'String' is not identical to 'AnyObject' 。 我一直在试图找出一个解决scheme,但我不能解决这个问题,因为我在我的应用程序中的其他地方使用相同的方法,它没有问题。 这是我在苹果手表的一部分: var defaults = NSUserDefaults(suiteName: "group.AffordIt") tempNames = defaults?.objectForKey("namesWatch") as NSArray tempDates = defaults?.objectForKey("datesWatch") as NSArray tempAmounts = defaults?.objectForKey("valuesWatch") as NSArray 包含的应用程序部分: defaults?.setObject(names, forKey: "namesWatch") defaults?.setObject(dates, forKey: "datesWatch") defaults?.setObject(values, forKey: "valuesWatch") 名称,date和值是string数组。 有任何想法吗?

如何使用NSUserDefaults保存来自ViewController的数据,并在应用程序重新运行时将其检索到TableViewController

我绝望了,一直在解决这个问题。所以我有一个类“WishListItem”,一个TableViewController和一个ViewController。 我在保存数据块和从TableViewController检索它有困难? 如何有效地做到这一点? 我要粘贴所有的代码,因为我不知道是否有重要的东西必须包括在我的问题。 所以我很抱歉,请耐心等待。 这里是。 ViewController.h: #import <UIKit/UIKit.h> #import "WishlistItem.h" @interface JLSViewController : UIViewController @property (strong, nonatomic) IBOutlet UIBarButtonItem *addWishListButton; @property (strong, nonatomic) IBOutlet UITextField *wishTextField; @property (strong, nonatomic) IBOutlet UITextField *descTextField; @property (strong, nonatomic) IBOutlet UIDatePicker *targetDatePicker; @property WishlistItem *wishItem; @end ViewController.m #import "JLSViewController.h" #import "WishlistTableViewController.h" @interface JLSViewController () @property NSMutableArray *wishlistItem; @end […]

iOS WatchKit – 将关键值观察者添加到NSUserDefaults崩溃

我正在尝试添加将数据从iPhone发送到Watch的function。 我已经设置了应用程序组,并且一切运行顺利,但是当我尝试在Watch扩展文件中添加观察者到NSUserDefaults时,应用程序在启动时总是崩溃。 (是的,我已经validation了应用程序组名称是正确的,并在所有目标function中进行了检查,并且所有预configurationconfiguration文件都是最新的,并启用了应用程序组) 码: override func willActivate() { super.willActivate() NSUserDefaults(suiteName: "my.suite.name")?.addObserver(self, forKeyPath: "phoneSaysHello", options: NSKeyValueObservingOptions.New, context: nil) } override func didDeactivate() { super.didDeactivate() // Remove listener for commands sent from phone NSUserDefaults(suiteName: "my.suite.name")?.removeObserver(self, forKeyPath: "phoneSaysHello", context: nil) } 错误: ***由于未捕获exception“NSInternalInconsistencyException”,原因:终止应用程序NSUserDefaults类的一个实例0x7f99534559b0被释放,而键值观察员仍然注册。 当前观察信息:(上下文:0x0,属性:0x7f9953609200>)'

在NSUserDefaults中加载数据

我已经做了编码,以保存高分在NSuserdefaults,但我不知道如何加载数据从nsuserdefaults并显示在表中。 请帮忙。 NSString *name; name = nametextbox.text; NSDictionary *player = [NSDictionary dictionaryWithObjectsAndKeys: [NSString stringWithFormat:@"%@", name], @"name",[NSString stringWithFormat:@"%d", myScore], @"score",nil]; [highScore addObject:player]; NSSortDescriptor *sort = [[NSSortDescriptor alloc] initWithKey:@"score" ascending:NO]; [highScore sortUsingDescriptors:[NSArray arrayWithObject:sort]]; [sort release]; [[NSUserDefaults standardUserDefaults] setObject:highScore forKey:@"highScore"];

一旦appclosures,如何保存Pin注解(Swift)

目前,我的应用钉住一个位置,该位置是这样的商店: func locationManager(manager: CLLocationManager!, didUpdateLocations locations: [AnyObject]!) { // Find location of user var userLocation:CLLocation = locations[0] as! CLLocation var latitude = userLocation.coordinate.latitude var longitude = userLocation.coordinate.longitude var latDelta:CLLocationDegrees = 0.01 var longDelta: CLLocationDegrees = 0.01 var span: MKCoordinateSpan = MKCoordinateSpanMake(latDelta, longDelta) var location:MKUserLocation = currentLocation; var region: MKCoordinateRegion = MKCoordinateRegionMake(location.coordinate, span) var coordinate:CLLocationCoordinate2D = […]

NSUserDefaults BOOL逻辑

我有一个问答游戏,当答案是正确的,一个带勾号的图片将出现。 由于我有很多领域,需要应用程序来记住哪些已经完成下一次启动。 我正在使用NSUserDefaults。 它工作的很好,但问题是,在第一次启动时,所有“完成”图像都显示出来。 我试图绕过布尔逻辑,但没有成功。 。H BOOL doneState; .M – (void)viewDidLoad{ [super viewDidLoad]; [self doneHidden]; [self checkBools]; } – (void)checkBools{ //——–NSUserDefaults & tick sign hidden BOOL saved = [[NSUserDefaults standardUserDefaults] boolForKey:@"hiddenDone"]; NSLog (@"Value of my saved BOOL = %@", saved ? @"YES" : @"NO"); done.hidden = saved; } -(void)doneHidden{ done.hidden = YES; } 当用户退出应用程序时,下面的方法会记住BOOL值 -(IBAction)flipBack:(id)sender{ […]

通过tableview单元格删除NSUserDefault的对象

我有一个存储在NSUserDefaults中的collections夹列表,单个collections夹由NSDictionary存储: NSUserDefaults *userPref = [NSUserDefaults standardUserDefaults]; NSMutableDictionary *bookmark = [NSMutableDictionary new]; [bookmark setValue:author.text forKey:@"author"]; [bookmark setValue:book.text forKey:@"book"]; [bookmarks addObject:bookmark]; [userPref setObject:bookmarks forKey:@"bookmarks"]; [userPref synchronize]; 一切正常,但现在我想用单元格的滑动来删除单个最爱。 我添加了显示删除刷卡的方法,但我不知道如何从nsuserdefaults中删除单个书签。 – (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath { NSUInteger row = [indexPath row]; [self.listBookamrks removeObjectAtIndex:row]; [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade]; }

尝试将非属性列表对象设置为NSUserDefaults

我以为我知道是什么导致了这个错误,但我似乎无法弄清楚我做错了什么。 这是我得到的完整的错误消息: 尝试设置一个非属性列表对象( “<BC_Person:0x8f3c140>” )作为关键personDataArray的NSUserDefaults值 我有一个Person类,我认为是符合NSCoding协议,我在这个人类中有这两种方法: – (void)encodeWithCoder:(NSCoder *)coder { [coder encodeObject:self.personsName forKey:@"BCPersonsName"]; [coder encodeObject:self.personsBills forKey:@"BCPersonsBillsArray"]; } – (id)initWithCoder:(NSCoder *)coder { self = [super init]; if (self) { self.personsName = [coder decodeObjectForKey:@"BCPersonsName"]; self.personsBills = [coder decodeObjectForKey:@"BCPersonsBillsArray"]; } return self; } 在应用程序的某个时刻, BC_PersonClass的NSString被设置,并且我有一个DataSave类,我认为它正在处理BC_PersonClass的属性的编码。 这里是我从DataSave类使用的代码: – (void)savePersonArrayData:(BC_Person *)personObject { // NSLog(@"name of the person %@", personObject.personsName); [mutableDataArray […]