写了有半年多的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 dealloc2012-12-18 09:54:38.021 iPhone_MIU[1926:11303] _array count = 02012-12-18 09:54:38.022 iPhone_MIU[1926:11303] _array2 count = 0但是事情就出现了,问题一:为什么我释放了这两个对象的时候没有任何的报错?问题而:我在@sythsize中array = _array;中这样写了之后,我还是不是必须将_array在viewDidLoad中alloc之后才能使用问题三:有没有好的代码规范的文章推荐看一下,最好的内存管理这一块的
2 回答
慕的地10843
TA贡献1785条经验 获得超8个赞
1.Objective-c可以向nil对象发送消息.
2.@property和@synthesize编译器指令是用来合成getter和setter方法的.至于需不需要在在viewDicLoad中分配一个对象给_array,要看你的需求。建议你看下Objective-c中的属性方面资料.
3.内存管理这块,今后建议您使用ARC.
子衿沉夜
TA贡献1828条经验 获得超3个赞
1、objective-c是可以向nil对象发送消息而不会报错
2、建议你熟悉一下@property中,retain、copy、assign的区别,还需知道readonly的作用,才能决定是否需在viewDidLoad中alloc成员变量
3、只要你alloc、retain、copy与release成对出现,一般不会出现内存问题
- 2 回答
- 0 关注
- 137 浏览
添加回答
举报
0/150
提交
取消