iOS学习知识小结
在学习iOS的过程中,总会遇到不少问题,下面小编整理了关于iOS学习问题的总结
iOS学习小结
1.关联
objc_setAssociatedObject关联是指把两个对象相互关联起来,使得其中的一个对象作为另外一个对象的一部分。
2.tableView的beginUpdates 和 endUpdates
3.关于代码与storyBoard的自动布局
4.国际化与本地化,为了实现全球化
5.技巧
可以通过设置Scheme来设置app所运行的语言,你想要什么语言就是什么语言,而不用重新设置系统的语言。
6.ios8新特性,加载js
如果我想要加载一个形如网页的东西,那么我需要对整个网页进行动态的编辑,图文混编,但是这样做那面会带来很困难的操作,其实服务端那边很好的可以解决这个问题,用一个网页即可以搞定。服务端那边只需返回一个html文档,然后客户端根据这个html文档进行解析即可。
WKWebView新特性
· 在性能、稳定性、功能方面有很大提升(最直观的体现就是加载网页是占用的内存,模拟器加载百度与开源中国网站时,WKWebView占用23M,而UIWebView占用85M);
· 允许JavaScript的Nitro库加载并使用(UIWebView中限制);
· 支持了更多的HTML5特性;
· 高达60fps的滚动刷新率以及内置手势;
· 将UIWebViewDelegate与UIWebView重构成了14类与3个协议
7.技巧
写 函数的时候一定要判断数据的安全性,这样出错的几率就会很小,尤其是要判断它的类型安全,是否为空等,不然程序会奔溃。还有需要注意的地方就是,写每一个函数的时候要多方面进行考虑,考虑代码的合法性。使用前不判断参数的正确性,在函数内部对参数的可靠性进行判断。如果这样的话,你用到函数的时候都需要对这些参数进行判断其合法性如果放倒函数中那么只需要判断一次就可以了。
8.应用内购买
9.利用sqlite创建索引,索引是关系数据库中用于存放每一条记录的一种对象,主要目的是加快数据的读取速度和完整性检查。索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。
10.数据库版本的更新,当应用数据表需要添加新表的时候,需要对数据插入新的字段,那么久需要更新数据库
11.友盟统计,当应用上线后可以观察到应用的日志文件,crash日志,页面记时日志,收集并归类崩溃日志,提供错误管理及分析工具,帮助开发者更好的解决问题,从而提高应用的稳定性,改善应用质量。
12.使用js的时候需要使用webView
[webView stringByEvaluatingJavaScriptFromString:scriptString];
13.做常用设备登陆的策略可以使用服务器,服务器把所有登陆过的设备都存储下来。
14.涉及到系统偏好设置的选项,把它都放到一个文件中,这样修改起来比较容易。
15.利用VVDocumenter-Xcode自动生成注释,也就是xcode的插件.运行VVDOcumenter-Xcode编译后,重新打开xcode即可以使用了
16.如何使用xib进行界面的搭建,利用file’s owner进行关联,形如storyBoard中的segue
17.如何在一个项目中使用多个storyBoard
18.如何利用代码与storyBoard或者XIB进行自动布局
19、XIB进行国际化
首先在工程中需要添加你想要使用的语言,然后新建视图的时候选择使用XIB,这样xcode就会自动为你新建一个xib文件,然后在inspector中的localization中选择localized,开始时一定要选择base,然后勾选其他语言,这样你发现XIB文件会有子目录,然后在子目录下你可以设置不同的语言翻译。
20.tableView小技巧
根据设置不同的identifier取出不同类型的cell,在设置identifier的时候可以设置成类名,这样的话就可以省很多事,而且很方便。
21. 技巧
[[UIApplication sharedApplication] setStatusBarHidden:YES];
22.版本控制
gitLab和sourceTree结合使用对源代码进行管理,如何进行相关的配置
23.发送语音消息
三方库opencore-amr
24.Sqlcipher+FMDB,数据库文件加密
https://www.zetetic.net/sqlcipher/ios-tutorial/
25.技巧
图片浏览XHImageViewer
26.技巧
根据button的不同状态可以设置button的事件,相当于微信发送语音信息的按钮,按住录音,松开结束录音并发送消息,
27.技巧
把block指针变量设置成私有的,这样是不是很好用。
28.关于runloop的一些了解,runloop是一种运行池,是和多线程有关的东西,监听事件的产生,如果有新事件,那么runloop会监听,一旦监听到了,就会执行监听到的方法。
29.技巧
关于用户头像的问题,点击放大,等其他手势的库ESImageViewController
30.技巧
NSString *pullSuccessIdString = [pullSuccessMsgIds componentsJoinedByString:@","];
把数组中的每个元素用逗号拼接成一个字符串
31.数据共享
Multipeer Connectivity Framework ,近距离通信,双方建立连接后可以彼此进行通信
32.问题
oc中不支持多继承,也就说一个类只能继承至一个类,不能继承多个类。实现多继承可以使用协议来实现,也就说某个类中可以继承多个协议,这久相当于多继承,我可以拥有很多协议并且实现它。
33.multipeerConnectivity的实现,对文件进行共享
34.indexPathForSelectedRow
35如何给另一台电脑进行真机调试
《1》导出p12文件
《2》导出描述文件
《3》在另一台电脑上双击即可以安装了