## 循环引用 循环引用的情况比较多: 1. block循环引用`self.block = ^(){self.view.backgroundColor = [UIColor red];};` 2. 代理不使用weak 3. NSTimer使用不当,如:在一个类的`dealloc`里面释放一个timer,而类对timer强引用。类的释放前提是timer停止并置nil,而此时你在类的`- (void)dealloc;`里面置空一个timer,自然双方都释放不了。 ## 非OC对象没有及时释放 如CoreFoundation下的大部分对象,需要在使用完释放。 ## 其他 在一个很大次数的循环中: ```objc for (int i = 0; i < 100000; i++) { NSString *string = @"Abc"; string = [string lowercaseString]; string = [string stringByAppendingString:@"xyz"]; NSLog(@"%@", string); } ``` 将会大量创建对象,直到循环的结束才会释放,需要在for循环里面主动加一个@autoreleasePool,使得临时变量及时释放。
Activity