iOS - 改掉那些已经过时的方法吧 (持续更新中。。。)

1.【弹出提示对话框】

在iOS9之前我们使用AlertView来弹出对话框,现在推荐使用AlertController,对于这个变化,参考另一篇博客《iOS9使用提示框的正确实现方式》。

2.【stringByAddingPercentEncodingWithAllowedCharacters替换stringByAddingPercentEscapesUsingEncoding】

这个方法真的好长。。。我们使用这个方法来进行字符串编码方式的更改。最常用的地方就是进行Http网络请求的时候,发送的链接的参数中如果带有中文,那么首先就需要调用这个方法把编码方式改为utf8,因为服务器端一般都使用utf8编码。两者实现的功能一样。

3.【NSURLSession替换NSURLConnection】

NSURLSession已经渐渐走上历史舞台了。最近使用[NSURLConnection sendAsynchronousRequest]时已经警告为不推荐使用了,那我们就换成NSURLSession中的dataTaskWithRequest方法吧。

4.【presentViewController替换presentModalViewController】

这是弹出一个模态视图的方法,presentModalViewController方法首先在iOS6被弃用。如果使用了导航栏,则不能使用这种跳转方式。

5.【AlertController中的UIAlertControllerStyleActionSheet替换ActionSheet】

ActionSheet在iOS8.3后被弃用了。会出现如下警告:

参考链接:http://blog.csdn.net/chenyufeng1991/article/details/50060061

时间: 2024-11-05 14:38:17

iOS - 改掉那些已经过时的方法吧 (持续更新中。。。)的相关文章

iOS求职之OC面试题完整版---持续更新中...

1.Objective-C的类可以多重继承么?可以采用多个协议么? 答:不可以多重继承,可以采用多个协议,Objective-C本身也并不支持抽象基类. 2.#import和#include的区别是什么?#import<> 跟 #import""有什么区别? #import能避免头文件被重复包含的问题: 1) 一般来说,导入objective c的头文件时用#import,包含c/c++头文件时用#include. 使用include要注意重复引用的问题: class A,

iOS开发编码建议(Objective-C)(持续更新中)

在开发过程中,我们不仅要去看别人的代码,也要让别人看我们的代码.那么,有一个良好的编码习惯将会非常重要.下面将会罗列使用Objective-C来开发iOS的编码建议. [1] 任意函数长度不得超过50行.(其实很容易就超过50行,这就要考虑代码抽取了.) [2] 任意行代码不能超过80字符.(其实也很容易超过80字符,可以考虑多行显示,比如有多个参数时,可以每个参数放一行.)可以在Xcode中设置超过80个字符的提醒,选中"Page guide at column".设置完之后就会在代

oracle学习 六 删除表空间,数据文件的语句以及导入导出dmp文件的方法(持续更新中)

要想删除表空间就要先删除数据文件 例如这个例子 CREATE TABLESPACE STHSGIMGDB_SPACE11 DATAFILE 'D:\ORACLEDATABASE\JinHuaDataBase\STHSGIMGDB_SPACE11_01' SIZE 1M AUTOEXTEND ON NEXT 50M MAXSIZE UNLIMITED, 'D:\ORACLEDATABASE\JinHuaDataBase\STHSGIMGDB_SPACE11_02' SIZE 1M AUTOEXTE

android 常见问题解决方法(持续更新中....)

 Systrace生成的trace.html打开空白或者打不开的解决办法 1.必须用Chrome打开 2.在mac电脑上,可能Chrome打开也是空白,解决办法是:在chrome地址栏中输入”chrome:tracing”,然后点击load按钮load你的trace.html文件. gradle 新增moudle后,有时候出现类或者xml文件引用不到 1. 先clean,然后build 2. 第一步还不行,试用下面的主动同步

H5移动端IOS/Android兼容性总结,持续更新中…

H5移动端IOS/Android兼容性总结,持续更新中… 1. IOS不识别日期 new Date("2018-07-01 08:00:00")在Android下正常显示可以直接进行各种操作转化,而在IOS下为invalid date,获取到的时间戳为NaN,确实有点坑啊,只能识别new Date("2018/07/01 08:00:00")这种的,所以需要转化一下,解决方法为统一增加.replace(/-/g,'/'): new Date("2018-0

做web项目时对代码改动后浏览器端不生效的应对方法(持续更新)

做web项目时,常常会遇到改动了代码,但浏览器端没有生效,原因是多种多样的,我会依据我遇到的情况逐步更新解决的方法 1.执行的时候採用debug模式,普通情况下使用项目部署button右边那个button下的tomcat7中的run即可,假设使用的是serves中的run serves,这样的情况貌似不会自己主动编译 2.点击project菜单下的clean选项,在打开的窗体中选择你使用的项目,ok,这样会删除tomcat容器中关于该项目的一些信息,然后又一次部署,执行 3.删除电脑中tomca

java开发中遇到的问题及解决方法(持续更新)

摘自 http://blog.csdn.net/pony12/article/details/38456261 java开发中遇到的问题及解决方法(持续更新) 工作中,以C/C++开发为主,难免与其他服务和Web进行交换,Java开发必不可少,又不想动用Eclipse大家伙,只能自己动手编写脚本进行Java代码的编译和运行,期间遇到的一些问题,记录下来供自己和大家参考.1)软件包不存在/软件包 javax.jms 不存在    这是由于javac编译时找不到javax.jms所在的软件包,因此将

crash的方法(不断更新中)

#include <iostream> using namespace std; int main() { #if 0 //devide by 0 int i = 1; int j = 0; double d = i/j; #endif #if 1 //allocate large memory, NOK char* pc = new char[1000000000]; #endif #if 0 //change const memory, OK char* pc1 = "stack

做web项目时对代码修改后浏览器端不生效的应对方法(持续更新)

做web项目时,经常会遇到修改了代码,但浏览器端没有生效,原因是多种多样的,我会根据我遇到的情况逐步更新解决办法 1.运行的时候采用debug模式,一般情况下使用项目部署按钮右边那个按钮下的tomcat7中的run就行,如果使用的是serves中的run serves,这种情况貌似不会自动编译 2.点击project菜单下的clean选项,在打开的窗口中选择你使用的项目,ok,这样会删除tomcat容器中关于该项目的一些信息,然后重新部署,运行 3.删除电脑中tomcat文件夹,重新解压,然后在