最新评论
Re:iPhone/Mac Objective-C内存管理教程和原理剖析(一)基本原理 doubleHHHH 2012-05-05 17:01
@非常混混
直接dealloc是没用的因为他的引用计数还是为1,程序发现为1就释放不了
Re:iPhone/Mac Objective-C内存管理教程和原理剖析(一)基本原理 doubleHHHH 2012-05-05 15:15
初来乍到。
Re:iPhone/Mac Objective-C内存管理教程和原理剖析(二)口诀与范式 jeff.zhao 2012-05-02 04:40
楼主,你的文章写的很不错,受益匪浅,由于刚接触objective-c,现有一问题,请指教:
void funcNoAutorelease()
{
ClassB *objB1 = [[ClassB alloc]init];
ClassA *objA = [[ClassA alloc]init];
objA.objB = objB1;
[objB1 release];
[objA release];
}
void funcAutorelease()
{
ClassB *objB1 = [[[ClassB alloc]init] autorelease];
ClassA *objA = [[[ClassA alloc]init] autorelease];
objA.objB = objB1;
}
上面的代码中objA.objB,都不需要retain吗?
Re:iPhone/Mac Objective-C内存管理教程和原理剖析(二)口诀与范式 York_Zhang 2012-02-28 11:36
讨论一下,lz你文章中的2.3 Release一个对象后,立即把指针清空。
这个建议在这种情况下就会导致对象被release 2次。
@property (retain) ClassB* objB;
[self.objB release];
self.objB = nil;
而如果变成这样:
@property (retain) ClassB* objB;
[self.objB release];
objB = nil;
objB就只会被release 1次。
这其中的微妙之处,可能还是和读者们说一下会好一点哦。
仅是技术谈,切莫见怪~
Re:iPhone/Mac Objective-C内存管理教程和原理剖析(一)基本原理 摩羯座 2012-02-24 16:12
不错不错,我转了
Re:iPhone/Mac Objective-C内存管理教程和原理剖析(一)基本原理 Vince Yuan 2012-02-20 20:06
不要手动调用dealloc。应该用release。我文中用dealloc只是为了介绍为什么obj-c需要引入release。
Re:iPhone/Mac Objective-C内存管理教程和原理剖析(一)基本原理 非常混混 2012-02-20 18:16
我是在一个controller里面viewDidLoad下写的:
ClassA *classA = [[ClassA alloc] init];
[classA dealloc];
[classA sayHello];
为何连这样都是可以的?
Re:iPhone/Mac Objective-C内存管理教程和原理剖析(一)基本原理 非常混混 2012-02-20 18:12
我按照文章,如此做的:
ClassA *classA = [[ClassA alloc] init];
ClassA *classB = classA;
[classA sayHello];
[classA dealloc];
[classB sayHello];
[classB dealloc];
能够执行倒数第二行和下一行吗?
结果呢:
2012-02-20 18:00:32.342 NewTest[6542:207] Hello!
2012-02-20 18:00:32.344 NewTest[6542:207] Hello!
NewTest(6542,0xa009c540) malloc: *** error for object 0xab00230: pointer being freed was not allocated
*** set a breakpoint in malloc_error_break to debug
真的可以啊,只有到最后移行才报错,为何?
Re:iPhone/Mac Objective-C内存管理教程和原理剖析(一)基本原理 chansy 2011-11-29 11:43
@青怪
你的dealloc里的实现呢
Re:iPhone/Mac Objective-C内存管理教程和原理剖析(四)系统自动创建新的autorelease pool 调调1987 2011-10-21 13:41
收徒弟不 我要学习
Re:iPhone/Mac Objective-C内存管理教程和原理剖析(一)基本原理 青怪 2011-09-17 00:10
即使我注释了[mazda retain];也能输出;
Re:iPhone/Mac Objective-C内存管理教程和原理剖析(一)基本原理 青怪 2011-09-17 00:03
关于第2点,我今天中午写了一个类似的,但输出了,我认为第2个指针retain+1了一次,因为没到0,就没释放,所以输出,看来我错了。我再次测试了一下,真的两次都可以输出。
@interface Car : NSObject {
NSString *_name;
int price;
}
@property(assign,readwrite) int price;
-(void) printPrice;
@end
@implementation Car
@synthesize price;
-(void)printPrice{
NSLog(@"car price is %i yuan!hahah~",price);
}
@end
int main (int argc, const char * argv[])
{
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
Car *bmw=[[Car alloc] init];//retain=1(retain自动计数)
Car *mazda=bmw;
[mazda retain];//非init,new,copy需手动retain计数
[bmw setPrice:1000];
[bmw printPrice];
[bmw dealloc];//谁创建,谁释放
bmw=nil;//销毁指针
[mazda printPrice];
[mazda dealloc];//谁创建,谁释放
mazda=nil;//销毁指针
[pool drain];
return 0;
}
输出:
2011-09-16 23:59:36.455 zhizhen[2817:903] car price is 1000 yuan!hahah~
2011-09-16 23:59:36.457 zhizhen[2817:903] car price is 1000 yuan!hahah~
sharedlibrary apply-load-rules all
不知道错在哪里了
Re:iPhone/Mac Objective-C内存管理教程和原理剖析(一)基本原理 青怪 2011-09-16 23:50
奇怪了,我可以输出啊
Re:iPhone/Mac Objective-C内存管理教程和原理剖析(三)@property (retain)和@synthesize的默认实现 roar 2011-07-14 10:53
关于属性的初始化,小弟一直有个问题,请教下大哥:
一个属性
aProperty = [[AProperty alloc] init]; // 初始化方式1
和
AProperty tempProperty = [AProperty alloc] init];
aProperty = tempProperty;
[tempProperty release]; // 初始化方式2
两种方式有何区别,谢谢~!!
Re:iPhone/Mac Objective-C内存管理教程和原理剖析(一)基本原理 tinyQ 2011-07-13 10:16
DDDDDDDDDDDDDDD
Re:iPhone/Mac Objective-C内存管理教程和原理剖析(四)系统自动创建新的autorelease pool objective-c初学者 2011-03-13 14:37
真是好文! 深入浅出!通俗易懂!
Re:一个用快捷键隐藏或显示任务栏的小程序 断掌纹 2011-02-25 21:09
试用了一下,感觉并不是我想象的那种。
按了快捷键后,发现任务栏只是变成超级透明的感觉,鼠标拉下虚线会发现下面根本过不到最底部。 有一个透明的任务栏在哪里挡住了!
像要那种不占空间的那种 快捷键 绝对隐藏 不会留下透明墙挡住的那种。
我找了好多好多这种软件,都是把任务栏弄透明而已。很纠结!期待作者新创意!
Re:iPhone/Mac Objective-C内存管理教程和原理剖析(一)基本原理 theone5288 2010-12-23 09:41
学习了就得顶
Re:iPhone/Mac Objective-C内存管理教程和原理剖析(一)基本原理 power_hc 2010-11-24 17:39
顶起
Re:iPhone/Mac Objective-C内存管理教程和原理剖析(四)系统自动创建新的autorelease pool zhangsure 2010-10-05 10:57
看完了,再顶下
