首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

iPhone SDK上的NSUserDefaults没有返回nil

您好,感谢您的提问。

NSUserDefaults是iOS中用于存储应用程序的首选项和配置信息的类。它提供了一个简单的键值对存储机制,可以用来存储应用程序的设置和状态信息。

在iOS中,NSUserDefaults通常用于存储应用程序的设置和配置信息,例如用户的偏好设置、语言选项、主题等。它可以存储各种类型的数据,例如布尔值、整数、浮点数、字符串、日期等。

在使用NSUserDefaults时,如果键对应的值不存在,则会返回nil。因此,在使用NSUserDefaults时,应该先检查键是否存在,然后再获取对应的值。

以下是一个简单的示例代码,演示如何使用NSUserDefaults存储和获取一个字符串值:

代码语言:swift
复制
// 存储一个字符串值
let defaults = UserDefaults.standard
defaults.set("Hello World", forKey: "myString")

// 获取一个字符串值
if let myString = defaults.string(forKey: "myString") {
    print("The value of myString is \(myString)")
} else {
    print("myString does not exist")
}

在上面的示例代码中,我们首先使用UserDefaults.standard获取一个UserDefaults实例,然后使用set方法将一个字符串值存储到UserDefaults中。接着,我们使用string方法获取存储的字符串值。如果键对应的值不存在,则string方法返回nil。因此,我们需要使用if let语句来检查键是否存在,然后再获取对应的值。

总之,NSUserDefaults是一个非常有用的类,可以用来存储应用程序的设置和配置信息。在使用NSUserDefaults时,应该先检查键是否存在,然后再获取对应的值。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

iOS微信第三方登录实现

(注意) 1、下载iOS微信SDK。 2、将SDK放到工程目录中。 3、补充导入一些依赖框架。 4、添加URL Types 5、添加iOS9 URL Schemes....注意:如果没有做这步的话会出现以下错误....对于iOS应用,考虑到iOS应用商店审核指南中相关规定,建议开发者接入微信登录时,先检测用户手机是否已经安装 微信客户端(使用sdkisWXAppInstall函数),对于未安装用户隐藏微信...对于iOS应用,考虑到iOS应用商店审核指南中相关规定,建议开发者接入微信登录时,先检测用户手机是否已经安装 微信客户端(使用sdkisWXAppInstall函数),对于未安装用户隐藏微信...Json事例 { "errcode":40003,"errmsg":"invalid openid" } 11、最后 做到上面一步就应该得到返回微信基本信息,然后根据你公司后台基本需求去实现授权后如何登录

2.3K40

iOS开发之诱导用户为自己App评论功能

allluckly.cn.jpg "由于我自己App下载量少,评论也少,出于Appaso优化,想尽办法,而评论是aso里边比较重视一块,前面的版本都没有诱导用户评论这一功能,导致有些被动。"...由此自己简单封装了该功能,下面我们先看看效果图: 1.png 弹出试图并没有做什么处理,就是系统8.0以前用UIAlertView8.0以上用UIAlertController 具体一些算法...*userDefaults = [NSUserDefaults standardUserDefaults]; //当前时间戳天数 NSTimeInterval interval =...我要吐槽", nil]; [alertViewTest show]; #endif } } #if __IPHONE_OS_VERSION_MAX_ALLOWED...{ NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults]; //当前时间戳天数 NSTimeInterval

95640

实践-小细节 III

:UIAlertControllerStyleActionSheet]; Title:nil message:nil 标题和信息都设为 nil 不能设置为 @“” 这样还是会出现空白标题 ?...删除字符串中指定位置字符 删除字符串指定位置字符,返回剩余字符 deleteCharactersInRange:NSMakeRange(1,2); 删除字符串 第二位置往后2个长度字符串。...]; } 4.iPhone获取本机号码 本机号码要是用户设置了可以获得: [[NSUserDefaults standardUserDefaults] valueForKey:@"SBFormattedPhoneNumber...而破解,正是需要去掉这个签名,让它可以安装在 每一个帐号。但是安装过程还是需要欺骗iTunes,告诉它这个程序是已经签名了。 这个破解签名在哪里呢?...,对不起这个方法只能获取到可视Cell,就是说,这个方法只能获取到出现了Cell,对于没有出现Cell,你是获取不到 解决方法:使用CellModel,不管是获取到Cell数据、状态,还是对

49420

iOS开发之山寨版新浪微博小结

Demo.所以sdk使用在这就不做过多赘述。...2.在今天博客中没有大量代码,只是对之前博客中内容一个应用,如何用新浪OAuthSDK,新浪给提供开发文档中说明很详细了,笔者也是按上面一步步做没有太大问题。...3.在用户授权以后,新浪接口或返回一些用户信息,其中就有该授权用户所对应access_token, 下面是响应代码,把返回用户access_token存入到了NSUserDefaults中,关于NSUserDefault...= nil) { 16 //获取userDefault单例 17 NSUserDefaults *token = [NSUserDefaults standardUserDefaults...,因为之前是用纯代码封装自定义键盘并留有响应接口,所有移植到我们新浪微博就是一个拷贝粘贴体力活,关于自定义键盘东西请参考之前博客iOS开发之自定义表情键盘(组件封装与自动布局),在这就不做赘述

57870

IOS开发系列——启动页专题【整理,部分原创】

1 系统自带方式 1.1 添加图片 1,准备图片资源,放入工程中,即可,默认时间为1s iOS设备现在有三种不同分辨率:iPhone 320x480、iPhone 4 640x960...默认启动图片,如果没有提供上面几个iPad专用启动图片,则在iPad运行时也使用Default.png(不推荐) 320x480或者320x460 Default@2x.png iPhone4启动图片...640x960或者640x920 为了在iPad使用上述启动画面,你还需要在info.plist中加入key: UISupportedInterfaceOrientations。...怎么去判断是不是第一次登陆呢,需要用到NSUserDefaults类。...[fmfileExistsAtPath:launchDir]){ NSError*error = nil; //下面是对该文件进行制定路径保存 [fm createDirectoryAtPath

1.7K10

IOS中获取各种文件目录路径方法

iphone沙箱模型有四个文件夹,分别是什么,永久数据存储一般放在什么位置,得到模拟器路径简单方式是什么. documents,tmp,app,Library。...(NSHomeDirectory()), 手动保存文件在documents文件里 Nsuserdefaults保存文件在tmp文件夹里 1、Documents 目录:您应该将所有de应用程序数据文件写入到这个目录下...您不应该直接创建偏好设置文件,而是应该使用NSUserDefaults类来取得和设置应用程序偏好. Caches 目录:用于存放应用程序专用支持文件,保存应用程序再次启动过程中需要信息。...类方法用于返回一个代表应用程序包对象。...] withIntermediateDirectories:YES attributes:nil error:nil]; //取得一个目录下得所有文件名 NSArray *files = [fm subpathsAtPath

5.4K20

IOS开发问题索引(七)

//[btn setFont: [UIFont systemFontSize: 14.0]]; //这种可以用来设置字体大小,但是可能会在将来SDK版本中去除改方法 //应该使用 btn.titleLabel.font...======================================================= 设置UIButton字体颜色设置UIButton字体颜色,不是用: [btn.titleLabelsetTextColor...reverse指定该转换是否必须是可逆向转换。如果转换成功就返回true,否则返回false。...1.NSString* resourcePath = [[NSBundlemainBundle] resourcePath];//返回是resource文件夹路径,但是在iphone simulator...请求时,返回“JSONtext did not start with array or object and option”错误 原因: 服务端返回数据不是JSON格式,必须将响应序列号器改为其他

1.1K40

IOS获得各种文档文件夹路径方法

iphone沙箱模型有四个目录,各自是什么,永久数据存储一般放在什么位置。得到模拟器路径简单方式是什么. documents,tmp。app,Library。...手动保存文件在documents文件中 Nsuserdefaults保存文件在tmp目录里 1、Documents 文件夹:您应该将全部de应用程序数据文件写入到这个文件夹下。...您不应该直接创建偏好设置文件,而是应该使用NSUserDefaults类来取得和设置应用程序偏好. Caches 文件夹:用于存放应用程序专用支持文件,保存应用程序再次启动过程中须要信息。...类方法用于返回一个代表应用程序包对象。...] withIntermediateDirectories:YES attributes:nil error:nil]; //取得一个文件夹下得全部文件名称 NSArray *files = [fm

1.5K30

Cocoa编程中视图控制器与视图类详解

iPhone编程规则是:一个窗口,多个视图。UIView是iPhone屏幕很多控件基础类。...每个iPhone用户界面都是由显示在UIWindow(这其实也是个特殊UIView)内众多UIView及其专门化子类构建。...还为标准系统行为进行响应。从语法 说,UIViewController是视图控制器父类。视图控制器类是没有可视化表示抽象类,只有它管理视图才提供可视画布。记住:1....推入时,新视图控制器从右方滑入屏幕(假定animated:YES)。向左指Back后退按钮出现,可返回到上一步,且Back按钮用是上一个视图控制器标题。 2....),则视图控制器这个属性就指向那个NavigationController,否则为nil

5K50

iOS开发之使用XMPPFramework实现即时通信(二)

一、功能模块截图 1.登陆和获取好友列表 登陆过程就是连接用XMPPFramework连接Openfire过程,如果用户登陆过,就从UserDefault里获取用户JID和密码自动连接,如果用户没有登陆过则登陆...2、内容发送处理 好友点击去就是聊天页面,聊天时如果是发送图片或者声音,先存储到服务器存储,服务器会返回存储路径然后再把URL发送给接收方,接收方再下载 (1)如果是发送文字,把文字转成属性字符串...domain:MY_DOMAIN resource:@"iPhone"]; 8 9 //2.把JID添加到xmppSteam中 10 [self.xmppStream..."); 5 } (6),二次登陆自动连接代码: 1 // 如果已登录就直接填充密码登陆 2 NSUserDefaults *userDefult = [NSUserDefaults standardUserDefaults...6 { 7 NSLog(@"%s %@",__FUNCTION__,[error localizedDescription]); 8 } 至于如何在TableView显示

1.2K60

iOS逆向入门实践 — 逆向微信,伪装定位(二)

在之前 class-dump 出头文件中,果然找到这样一个类 PeopleNearByListViewController,但是从头文件中没有找到什么蛛丝马迹。...3 实现 FakeLocation 代码没什么难处,源码放在了 Github 仓库 ,下面解剖一下实现思路: 3.1 设置定位 这里用了最简陋方法,就是弹出对话框输入经纬度(因为喜欢日本,所以顺手设置了东京经纬度为默认值...中经纬度,直接返回给 delegate: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 %hook CLLocationManager...}); #pragma clang diagnostic pop } %end 上面我用了 GCD 来延时,是因为之前直接使用 responseToSelector 来做 delegate 判断时候发现没有不能通过条件...现在总算是一只脚跨入了逆向门了,嗯,还剩一只脚。 源码已经放在了 github ,随便享用。

87820

移动直播集成(IOS版)

最近在腾讯云集成了一下移动直播SDK,从0到1整个过程,中途遇到问题也详细地给大家列举出来,希望对将要用到腾讯云移动直播产品开发者们,起到一点点作用。...首先,介绍一下,我主要使用这个SDK做了哪些功能: [截屏2020-07-06 下午10.44.39.png] 其次,下载官网SDK(https://github.com/tencentyun...那么开始集成SDK,将Demo中Common和LiveRoom文件拖到你工程中 [截屏2020-07-06 下午10.53.27.png] command+b 运行,注意(这里 Bundle ID...(当然你也可以使用最新AFN但需要修改MLVBLiveRoom组件里被AF废弃了方法),这样,我们继承SDK运行就没有其他报错了,可以进行功能开发了。...这里还遇到了一个问题,主播PK一端断开了,另一端退出不了,quitRoomPK:返回错误-6(房间不存在) 原因:没有使用onQuitRoomPK回调方法,没有移除pk界面,再次推出pk房间已经不存在了

1.7K40

【IOS开发基础系列】数据持久化专题

而且要注意NSUserDefaults能够处理数据只能是可plist化对象,详情见Property List Programming Guide。     3....嵌入式数据库一大好处就是在你程序内部不需要网络配置,也不需要管理。因为客户端和服务器在同一进程空间运行。SQLite 数据库权限只依赖于文件系统,没有用户帐户概念。...SQLite 有数据库级锁定,没有网络服务器。它需要内存,其它开销很小,适合用于嵌入式设备。你需要做仅仅是把它正确编译到你程序。...= SQLITE_OK         sqlite3_exec是执行任何不带返回值sql语句,第2个参数是要执行sql语句,第3个参数是要回调函数,第4个参数是要回调函数参数,第5个参数是执行出错字符串...,第5个参数是sql语句没有被执行部分语句。

21420

iOS初步集成极光推送后你还要做这些事

当我们把推送证书配置好再把极光SDK拖入项目配置,然后注册极光推送,完成代理,这样没有太多意外你就能收到消息了,但是我们都知道还需要做一些处理,都是哪些呢?...● 你测试包(真机调试)收到通知后,怎么确定架包也能收到消息? 今天小伙伴问我Badge怎么弄,我这边徽章个数是从服务器请求,使用WZLBadge这个三方绘制。...,你有必要判断当前控制器是否可以push过去,即有没有导航栏,如果没有则不能push,当然也可以像我这样先跳转到个人中心,保证有导航栏,但是这样处理也许不适用你app....如下代码,建议以userId或者服务器登录返回tag值注册,这样后台方便发送消息。...在上面我们一直说都是在控制台直接发送消息,然而实际我们推送都是后台开发人员以API形式对接极光服务器。

2.8K50
领券