打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
【原】iOS开发进阶(唐巧)读书笔记(一)

如何提高iOS开发技能

1、阅读博客:https://github.com/tangqiaoboy/iOSBlogCN 40多位iOS开发博主的博客地址
2、读书:每年阅读一本高质量的iOS开发书籍
3、看WWDC视频
4、看苹果的官方文档
5、看开源项目的代码
6、多写代码,多思考
7、多和同行进行交流
8、分享

第一部分:iOS开发工具

1、Reveal界面调试工具

1、虚拟机集成
2、真机集成(iOS开发进阶P47)

vim ~/.lldbinitcommand alias reveal_load_sim expr (void*)dlopen("/Applications/Reveal.app/Contents/SharedSupport/iOS-Libraries/libReveal.dylib", 0x2);command alias reveal_load_dev expr (void*)dlopen([(NSString*)[(NSBundle*)[NSBundle mainBundle]               pathForResource:@"libReveal" ofType:@"dylib"] cStringUsingEncoding:0x4], 0x2);command alias reveal_start expr (void)[(NSNotificationCenter*)[NSNotificationCenter defaultCenter]           postNotificationName:@"IBARevealRequestStart" object:nil];command alias reveal_stop expr (void)[(NSNotificationCenter*)[NSNotificationCenter defaultCenter]            postNotificationName:@"IBARevealRequestStop" object:nil];

2、移动统计工具

国外:Flurry(不会被墙)
国内:友盟

3、crash统计工具

Crashlytics
Bugly(腾讯)

4、App Store统计工具

App Annie

第二部分:iOS开发实践

1、CoreFoundation对象的内存管理

  • CFStringRef
CFStringCreateWithCString(kCFAllocatorDefault, “Hello World”, kCFStringEncodingUTF8)
  • CF对象转换成OC对象
  1. __bridge:只做类型转换,不修改相关对象的引用计数,原来的CF对象在不用时,需要调用CFRelease方法
  2. __bridge_retained:类型转换后,将相关对象的引用计数加1,原来的CF对象在不用时,需要调用CFRelease方法
  3. __bridge_transfer:类型转换后,将对象的引用计数交给ARC管理,CF对象在不用时,不在需要调用CFRelease方法

2、GCD

  • 执行一次
    dispatch_once 代码提示
  • 延迟执行
    dispatch_after 代码提示
  • 自定义queue
dispatch_queue_t urls_queue = dispatch_queue_create(“blog.devzhang.com”, NULL);dispatch_async(urls_queue, ^{});dispatch_release(urls_queue);
  • 多线程处理,最后汇总结果(具体使用?)
dispatch_group_t group = dispatch_group_create();dispatch_group_async(group, dispatch_get_global_queue(0, 0), ^{    // 并行执行的线程一});dispatch_group_async(group, dispatch_get_global_queue(0, 0), ^{    // 并行执行的线程二});dispatch_group_notify(group, dispatch_get_global_queue(0, 0), ^{    // 汇总结果});

1、NSJSONSerializationNSKeyArchiver 更好

在选择持久化方案时,系统提供的 NSJSONSerializationNSKeyArchiver 在效率和体积上都更好。
NSJSONSerializationNSKeyArchiver 快了7倍,体积小了一半
网上有详细的测试:https://github.com/randomsequence/NSSerialisationTests

2、慎用Block

block容易产生循环引用问题
从架构层面来看,如果在使用 block 时需要时刻注意避免循环引用问题。那么还不如不使用 block。用 delegate 来实现要安全的多

注意:类方法绝不会产生循环引用!

3、忽略编译警告⚠️

https://blog.csdn.net/denggun12345/article/details/83586790

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
IOS面试题系列
iOS 面试必看,最全梳理
iOS进阶面试题----Block部分
iOS常见面试题总结
iOS多线程的初步研究(七)
!!iOS学习笔记
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服