写了有半年多的objective-c了,公司只有我一个人做ios开发,周末去参加黑客马拉松的时候发现别人的代码比我规范,这几天就在研究这玩意,我先代码在提问
在.h中 @interface LoginPageViewController : UIViewController { NSArray *_array2; @private NSArray *_array; } @property (nonatomic,retain) NSArray *array; 在.m中 @implementation LoginPageViewController @synthesize array = _array; - (void)dealloc { NSLog(@"loginPage dealloc"); [super dealloc]; NSLog(@"_array count = %d",[_array retainCount]); [_array release]; NSLog(@"_array2 count = %d",[_array2 retainCount]); [_array2 release]; } 我在.m中没有alloc 这两个数组 2012-12-18 09:54:38.020 iPhone_MIU[1926:11303] loginPage dealloc 2012-12-18 09:54:38.021 iPhone_MIU[1926:11303] _array count = 0 2012-12-18 09:54:38.022 iPhone_MIU[1926:11303] _array2 count = 0
但是事情就出现了,
- 问题一:为什么我释放了这两个对象的时候没有任何的报错?
- 问题而:我在
@sythsize中array = _array;
中这样写了之后,我还是不是必须将_array在viewDidLoad中alloc之后才能使用 - 问题三:有没有好的代码规范的文章推荐看一下,最好的内存管理这一块的
1.Objective-c可以向nil对象发送消息.
2.@property和@synthesize编译器指令是用来合成getter和setter方法的.至于需不需要在在viewDicLoad中分配一个对象给_array,要看你的需求。建议你看下Objective-c中的属性方面资料.
3.内存管理这块的文章很多,你百度下就OK了,另外今后建议您使用ARC.