现在位置: 首页 > 综合 > 文章
2019年11月13日 综合 ⁄ 共 973字 评论关闭
  最近开是做新项目,准备尝试使用ARC,记录遇到的一些问题。   ARC是编译器特性,所以要求Xcode的最低版本为4.2,iOS4以上(注意weak是ios4以上才有的,ios4中只能使用__unsafe_unretained)。   ARC的规则:   不能调用dealloc方法(可以重写,做一些清除操作,例如delegate置空,清除非ARC管理的内存,不能调用[super dealloc],编译器会自动帮你出入该代码),不能调用retain,release,autorelease,retainCount。   CF...
阅读全文
2019年11月13日 综合 ⁄ 共 325字 评论关闭
  今天在看多线程同步时,突然想到了单例的同步问题。自从dispatch_once出现后,我们创建单例非常简单且安全:   View Code   苹果简洁的接口已经慢慢让我们忘记了创建单例时的同步问题。   普通的创建单例方法:   View Code   这么写是没问题的,但是在多个线程同时调用时效率不高,可以用著名的double check方法来提高效率:   View Code   如果没有第一个if (obj == nil),每一次调用这个方法,都会用锁操作...
阅读全文
2019年11月13日 综合 ⁄ 共 223字 评论关闭
  要点:   retain使对象的引用计数+1,需要release   在属性中retain,需要在dealloc中release   delegate最好不要retain,以免循环引用   注意:   retain在属性中的用法,调用self.XX时系统默认步骤是先release就对象,再retain新对象   正确的释放方法为使用是不需要释放,直接在dealloc里面释放,即使该属性没有alloc,也应该在dealloc里面释放,以免发生leaks
阅读全文
2019年11月13日 综合 ⁄ 共 933字 评论关闭
  要点:   self调用自己方法,super调用父类方法   self是类,super是预编译指令   【self class】和【super class】输出是一样的   self和super底层实现原理:   当使用 self 调用方法时,会从当前类的方法列表中开始找,如果没有,就从父类中再找;而当使用 super 时,则从父类的方法列表中开始找,然后调用父类的这个方法。   当使用 self 调用时,会使用 objc_msgSend 函数: id objc_msgSend(id theReceiver...
阅读全文
2019年11月13日 综合 ⁄ 共 427字 评论关闭
  typeof 和 __typeof,typeof 的区别?   __typeof __() 和 __typeof() 是 C语言 的编译器特定扩展,因为标准 C 不包含这样的运算符。 标准 C 要求编译器用双下划线前缀语言扩展(这也是为什么你不应该为自己的函数,变量等做这些)   typeof() 与前两者完全相同的,只不过去掉了下划线,同时现代的编译器也可以理解。   所以这三个意思是相同的,但没有一个是标准C,不同的编译器会按需选择符合标准的写法。   在标准C...
阅读全文
2019年11月13日 综合 ⁄ 共 764字 评论关闭
  程序的耗电主要在以下四个方面:   CPU 处理   定位   网络   图像   优化的途径主要体现在以下几个方面:   尽可能降低 CPU、GPU 的功耗。   尽量少用 定时器。   优化 I/O 操作。   不要频繁写入小数据,而是积攒到一定数量再写入   读写大量的数据可以使用 Dispatch_io ,GCD 内部已经做了优化。   数据量比较大时,建议使用数据库   网络方面的优化   减少压缩网络数据 (XML -> JSON -> Prot...
阅读全文
2019年11月13日 综合 ⁄ 共 1345字 评论关闭
  大家都知道互联网大公司一向以技术强悍而知名,BAT的技术在国内互联网公司里算是比较领先的了,这也是因为大公司的业务繁杂庞大,必须要有足够优秀的技术去支撑。   相对而言,小公司更倾向于选用快速扁平化的技术架构,相对来说技术的沉淀就不会像大公司这么多,所以你会发现大公司里和小公司里,大家的技术思考可能也不太一样。   1,大公司里通常牛人很多,相对来说小公司里的牛人相对少一点,当然也有很多从大公司...
阅读全文
2019年11月13日 综合 ⁄ 共 424字 评论关闭
  存在64张哈希表中,根据哈希算法去查找所在的位置,无需遍历,十分快捷   散列表(引用计数表、weak表)   SideTables 表在 非嵌入式的64位系统中,有 64张 SideTable 表   每一张 SideTable 主要是由三部分组成。自旋锁、引用计数表、弱引用表。   全局的 引用计数 之所以不存在同一张表中,是为了避免资源竞争,解决效率的问题。   引用计数表 中引入了 分离锁的概念,将一张表分拆成多个部分,对他们分别加锁,...
阅读全文
2019年11月13日 综合 ⁄ 共 807字 评论关闭
  struct和class的区别   类: 引用类型(位于栈上面的指针(引用)和位于堆上的实体对象)   结构:值类型(实例直接位于栈中)   在C++中我们可以看到struct和class的区别并不是很大,两者之间有很大的相似性。那么为什么还要保留struct,这是因为C++是向下兼容的,因此C++中保留了很多C的东西。   一.首先看一下C中struct   1.struct的定义   struct A{int a;int b;//成员列表注意:因为struct是一种数据类型,那么就...
阅读全文
2019年11月13日 综合 ⁄ 共 1870字 评论关闭
  随着移动互联网的高速发展泄洪而来,有意学习移动开发的人越来越多了,竞争也是越来越大,需要学习的东西很多。如何才能在激烈的移动开发者竞争中一枝独秀,成为一名真正合格的高级iOS开发工程师?   话不多说直接上干货   作为一个开发者,有一个学习的氛围跟一个交流圈子特别重要这是一个我的iOS交流群:638302184,不管你是小白还是大牛欢迎入驻 ,分享BAT,阿里面试题、面试经验,讨论技术, 大家一起交流学习成长! ...
阅读全文