草庐IT

nsuserdefaults

全部标签

iOS - 无法将 NSDate 存储到 NSUserDefaults

在我的应用程序中,我想存储应用程序首次启动的日期。我在应用程序中使用以下代码:didFinishLaunchingWithOptions方法NSDate*today=[NSDatedate];[[NSUserDefaultsstandardUserDefaults]registerDefaults:@{@"CONSCIENCE_START_DATE":today}];NSLog(@"%@",[[NSUserDefaultsstandardUserDefaults]objectForKey:@"CONSCIENCE_START_DATE"]);但是每次我启动应用程序时,它都会打印应用程序

ios - 如何判断用户是第一次运行应用?

最近我的iOS应用程序出现了问题。在我的应用程序中,指令View将在第一次运行时出现,然后从那时起隐藏。我怎样才能实现这个效果? 最佳答案 尝试使用这个函数:-(BOOL)isFirstRun{NSUserDefaults*defaults=[NSUserDefaultsstandardUserDefaults];if([defaultsobjectForKey:@"isFirstRun"]){returnNO;}[defaultssetObject:[NSDatedate]forKey:@"isFirstRun"];[[NSUse

iphone - UserDefaults 线程安全吗

我知道文档说它是,我知道这个主题已经在讨论中,但我有一个有趣的堆栈结果,我无法得出任何结论,但[NSUserDefaultsstandardUserDefaults]不是线程安全。所以我将发布我的崩溃日志并希望有人看到我看不到的东西......线程崩溃...libdispatch.dylib0x3ab53d67_dispatch_client_callout+23libdispatch.dylib0x3ab65e73_dispatch_barrier_sync_f_invoke+27CoreFoundation0x302b470dCFPreferencesAppSynchronize+

ios - 设置包不适用于 watchOS 2

这在watchOS1上不是问题,但现在在watchOS2上我无法读取watch扩展上的值。根据Appledocs,有可能的。据一些人说thisthread,有可能的。据Apple员工称thisthread,这是可能的。据我所知,我正在正确设置所有内容:我在iOS应用和watch扩展上启用了应用组相同的标识符。我将Settings-Watch.bundle添加到iOS应用并添加了相同的ApplicationGroupContainerIdentifierplist的标识符当我使用标识符作为套件名称初始化NSUserDefaults对象时,我无法读取watch扩展上的值。我可以在iOS应用

数据持久化方案-NSUserDefaults【iOS15后不安全,会丢失数据】

NSUserDefaults1.NSUserDefaults是一个单例类,可以用于数据的永久保存,一般用于保存应用程序设置以及用户数据等轻量级数据,而且简单实用。2.NSUserDefaults系统在整个app生命周期中都是可用的,也就是说,无论用户关闭程序还是关机,在用户再次打开程序或开机后这些数据仍然存在。3.NSUserDefaults是单例,同时也是线程安全的4.NSUserDefaults存储的对象全是不可变的:NSDictionary,NSArray,NSString,NSNumber,NSDate,NSData.这一点非常关键,存储对象不对的话会导致程序崩溃.5.存入数据时,不会

iphone - 删除以某个单词开头的所有 NSUserDefaults

有没有办法让我“遍历”我的iPhone应用程序中所有NSUserDefault的列表,并且只删除某些?例如,我想获取所有以某个单词开头的键名。像这样:[[NSUserDefaultsstandardUserDefaults]removeObjectForKey:@"Dog*"]; 最佳答案 可以翻看dictionaryRepresentation.这是一个使用NSPredicate的实现作为通用匹配器以获得更大的灵active。@interfaceNSUserDefaults(JRAdditions)-(void)removeObj

ios - watchAppExtension 中的 NSUserDefault 更改通知处理

我正在创建一个Watch应用程序,以便在用户点击iPhone/主机应用程序中的表格View时在watch上显示一个值。我想收到有关共享UserDefault值更改的通知。它在WatchKit应用程序和iOS(主机)应用程序之间共享,因此当用户在主机应用程序中进行任何更改时,我希望收到通知。我做了以下事情:当用户在应用程序(主机应用程序)中执行某些操作时:NSUserDefaults*shared=[[NSUserDefaultsalloc]initWithSuiteName:@"group.app"];idobject=[self.plantsArrayobjectAtIndex:[

ios - 在 iOS 应用程序中安排任务

我想实现一个类似于WhatsApp的静音功能的功能。所以基本上,用户在一段时间内停止接收通知(在我的例子中,使用位置管理器)。在那之后,通知(位置管理器)会自动打开。我如何安排这样的事件(自动打开位置管理器),例如在我单击按钮后1周? 最佳答案 我会建议使用NSTimers的混合方法,并在应用启动或进入前台时进行检查。当用户禁用通知时,将此时间存储在NSUserDefaults中作为notificationsDisabledTime。//DeclarethisconstantsomewhereconstNSString*kNotif

ios - 在 Today Extensions (iOS 8) 上保存和加载数据

是否可以使用NSUserDefaults在TodayExtension上保存和加载数据?关闭通知中心后,小部件的行为就像一个终止的应用程序,因此所有数据都会丢失。我该如何解决这个问题?这是我的代码:NSUserDefaults*defaults;-(void)viewDidLoad{[superviewDidLoad];defaults=[NSUserDefaultsstandardUserDefaults];NSArray*loadStrings=[defaultsstringArrayForKey:@"savedStrings"];if([loadStringsobjectAtIn

ios - Apple Watch 数据共享

我在尝试在AppleWatch和iPhone(均在模拟器上)之间共享数据时遇到问题。这就是我在iPhone应用程序上存储数据的方式:NSUserDefaults*defaults=[[NSUserDefaultsalloc]initWithSuiteName:@"group.com.myapp"];[defaultssetObject:@"TEST"forKey:@"testKey"];[defaultssynchronize];这就是我尝试在我的watch应用程序上检索数据的方式:NSUserDefaults*defaults=[[NSUserDefaultsalloc]initWi