《iOS开发进阶》读书笔记


一、iOS开发工具
1.类似java的maven,iOS中管理第三方库的工具cocoapods
2.网络封包分析工具Charles
     1).支持SSL代理,可以截取分析SSL的请求
     2).支持流量控制。可以模拟慢速网络,以及等待时间较长的请求
     3).支持AJAX调试。可以自动将JSON或XML数据格式化
     4).支持AMF调试。可以讲Flash Remoting或Flex Remoting信息格式化
     5).支持重发网络请求
     6).支持修改网络请求参数
     7).支持网络请求的截获和动态修改
     8).检查HTML、CSS和RSS内容是否符合W3C标准
3.移动统计工具Flurry
4.崩溃日志记录工具Crashlytics(推荐,可以收集到iTunes Connect收集不到的崩溃信息)
5.App Store统计工具App Annie
6.常用Xcode插件
     1).KSImageNamed
     2).VVDocumenter
7.取色工具,系统自带的数码测色计
8.压缩图片工具,ImageOptim
9.设计稿标注、测量工具,马克鳗 http://www.getmarkman.com/,需要预装adobe air
10.内侧分发工具,蒲公英, http://www.pgyer.com/

二、对象内存管理,需要注意Core Foundation这部分代码要手动管理它们的引用计数

三、GCD简介
修改block之外的变量
后台运行最多10分钟时间清理本地缓存、发送统计数据等工作

四、UIWindow

五、多种中文字体下载

六、UIWebView
使用Safari来进行页面调试,直接修改HTML、css代码,对javascript打断点调试

七、网络安全
事先生成一对用于加密的公私钥,客户端登录时,使用公钥将用户的密码加密后,将密文传输到服务器。服务器使用私钥将密码解密,然后加盐之后再多次求MD5,之后再和服务器原来存储的用同样方法处理过的密码匹配,如果一致,则登录成功。这样,黑客即使截获了加密后的密文,由于没有私钥,也无法还原出原始的密码。而服务器即使被黑客攻陷,黑客除了暴力尝试,也无法从加盐和多次MD5后的密码中还原出原始的密码。从而保证了用户密码的安全

关键的逻辑用纯C来写,防止反汇编

八、实战技巧
1.清除Xcode缓存/Users/YDCY/Library/Developer/Xcode/DerivedData
2.模拟慢速网络
模拟器Charles
真机->设置->开发者->Status->Network Link Conditioner

九、oc对象
1.在控制台打印对象的依次继承,p *view
打印具体值,po view
2.在runtime.h中有一个名为methodLists的指针的指针,通过修改该指针指向的指针的值,就可以动态地为某一个类增加成员方法,这也是Category的实现原理,同时说明了为什么Category只可为对象增加成员方法,却不能增加成员对象
3.class_replaceMethod替换类方法的定义
method_exchangeImplementations交换两个方法的实现
method_setImplementation设置一个方法的实现

十、Tagged Pointer
1.Tagged Pointer专门用来存储小的对象,例如NSNumber和NSDate
2.Tagged Pointer指针的值不再是地址了,而是真正的值。所以,实际上它不再是一个对象了,只是一个披着对象“皮”的普通变量,它的内存并不在堆中,也不需要malloc和free
3.在内存读取上有着以前3倍的效率,创建时比以前快106倍
Tagged Pointer给64位系统带来了内存的节省和运行效率的提高,因为Tagged Pointer并不是真正的对象,使用时需要注意不要直接访问其isa变量

十一、block对象模型
避免循环引用
使用__weak关键字 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值