常见的面试题:以下代码存在什么样的问题?应该如何改进? for (int i = 0; i < 100000; i++) { NSString *str = @"abc"; str = [str stringByAppendingString:@"xyz"]; } 利用leaks查看内存泄漏情况 可 ...
分类:
其他好文 时间:
2018-07-17 18:01:10
阅读次数:
208
几个关键方法: AutoreleasePool类中的clear方法,在每一帧的最后,会将_managedObjectArray中的autorelease对象移除,同时对每个对象执行一边release方法。 Ref类的release方法中,对引用计数减1,如果引用计数等于0,则释放这个对象。 Auto ...
分类:
其他好文 时间:
2018-03-29 02:14:57
阅读次数:
141
大概总结以下几点 优化方案 1.提前布局 2.按页加载缓存 3.后台线程处理图片(不要阻塞主线程) 4.减少视图层级,减少频繁 addsubView,removesubView 用hidden代替 5.异步绘制(防止离屏渲染) 6.懒加载 7.重用机制 8.峰值优化 autoreleasepool ...
分类:
移动开发 时间:
2018-03-13 00:59:17
阅读次数:
215
// // main.m // Set方法的内存管理 #import #import "Person.h" #import "Room.h" int main(int argc, const char * argv[]) { @autoreleasepool { // 1.创建两个对象 Person... ...
分类:
其他好文 时间:
2017-08-25 12:33:04
阅读次数:
125
NSNumber类 NSFormatter #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { NSLog(@"1******************* NSFo ...
分类:
其他好文 时间:
2017-08-03 13:54:19
阅读次数:
162
所有运行时的内存管理都是针对虚拟内存进行管理的。 内存管理策略: 1)手动管理:c、c++; 2)引用计数; 3)垃圾收集。 运行时管理策略: 手动管理:内存分散管理,随时释放; 引用计数: 1)手动管理:计数为零时释放; 2)autoreleasePool:poolDrain时机:(1)运行循环; ...
分类:
其他好文 时间:
2017-08-01 19:05:31
阅读次数:
122
之前,看到关于blcok外使用__weak弱化对象,blcok内再用 __strong 强引用的原因: 保证对象在blcok中不会被提前释放,当blcok执行完之后,自动释放该对象。 今天看了一下__weak修饰的对象,在被使用的时候,每次使用都会被注册到autoreleasepool中,例如: { ...
分类:
其他好文 时间:
2017-07-28 11:09:09
阅读次数:
158
http://draveness.me/autoreleasepool.html 关注仓库,及时获得更新:iOS-Source-Code-Analyze Follow: Draveness · Github 由于 Objective-C 中的内存管理是一个比较大的话题,所以会分为两篇文章来对内存管理 ...
分类:
其他好文 时间:
2017-07-26 14:35:48
阅读次数:
196
在OC中。除了while这样的循环方式外,还有另外for循环和do-while循环。它们在不同的业务逻辑下会有不同的作用。能够和C语言和Java对照着学习。(一)代码一:int main(int argc, const char * argv[]) { @autoreleasepool { for ...
分类:
其他好文 时间:
2017-06-18 20:46:21
阅读次数:
101
自己主动释放池@autorelease面试频率可能会吧release还要高。 (1)在自己主动释放池@autoreleasepool{}中alloc一个对象后(如p1)。仍然须要用[p1 autorelease];不过这个语句和[p1 release];不同。后者表示把p1的retainCount- ...
分类:
移动开发 时间:
2017-06-17 18:25:46
阅读次数:
135