我发现xcode-builtin-documentation阅读器很难使用.我希望看到所有指南的根源,以便了解在我开始之前我必须继续阅读多长时间.一直有一些新指南出现在我面前,我想知道它们有多少.
某处有概述吗?
我正在寻找好的解释.我有一本关于objective-c的1000页书籍,但不幸的是关于内存管理,保留计数的部分,描述得非常糟糕且难以理解.
我正在寻找一个很好的解释,也许有一些例子.根据我的理解,当它可用于多种目的时,某些东西是"通用的".但我可能错了......
我这样做有困难:
CALayer *myLayer = myUIImageView.layer; //works, no error from compiler
CGRect visRect = myLayer.visibleRect; //fat error, see below
Run Code Online (Sandbox Code Playgroud)
我得到的错误是:
错误:请求成员'visibleRect'不是结构或联合
但是文件说:
visibleRect在其自己的坐标空间中返回接收器的可见区域.(只读)@property(readonly)CGRect visibleRect
我已经包含了QuartzCore.framework,CoreGraphics.framework,UIKit.framework,Foundation.framework.
所以,如果它返回一个CGRect,为什么它不起作用?任何的想法?
我实际上知道最好有一个版本控制,但是我想知道Time Machine是否在懒惰程序员方面做得不好?
这是一个示例代码,只释放"string"对象.
NSString *nameOfFile = ... ;
NSError *error;
NSString *string = [[NSString alloc] initWithContentsOfFile:nameOfFile encoding:NSUTF8StringEncoding error:&error];
if (string == nil) {
// handle error
}
[string release];
Run Code Online (Sandbox Code Playgroud)
我理解为什么不释放错误对象.这是因为此处的方法没有使用"new"或"alloc"方法创建该错误对象.相反,这个是通过引用返回的,因此initWithContentsOfFile方法负责该内存.但是nameOfFile对象怎么样?他们为什么不释放它?它没有被引用返回......?
我一直在读,如果一个集合"被释放"它也会释放它的所有对象.另一方面,我还读到,一旦集合被解除分配,集合就会释放它的对象.
但最后一件事可能并非总是如苹果所说.系统决定是否解除分配是好的.在大多数情况下,它会,但在某些情况下不会.
所以我想知道一个集合是否会导致这样的内存泄漏?当它确实发布了 - 它的所有对象发送到集合本身的-release消息时,它应该实际上 - 一旦我获得集合本身就保存集合中的所有对象.
帮助我清楚地了解这一点.谢谢!
#import <UIKit/UIKit.h>
int main(int argc, char *argv[]) {
NSLog(@"new event...");
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
int retVal = UIApplicationMain(argc, argv, nil, nil);
[pool release];
return retVal;
}
Run Code Online (Sandbox Code Playgroud)
如果是这种情况,则必须在每个事件上调用main()函数,对吧?但我试了一下,"新事件......"日志消息就出现在应用程序启动时.所以我猜在主线程中必须有另一个自动释放池.
医生说:
在垃圾收集环境中,如果需要,向池中发送排泄消息会触发垃圾回收; 然而,释放是一种无操作.在参考计数环境中,排水与释放具有相同的效果.因此,通常应使用排水而不是释放.
如果我做对了,他们说我应该总是使用-drain,无论周围有垃圾收集还是引用计数都没关系.在iPhone上没有GC,所以无论如何我发送-drain?
不幸的是,该文件只讨论了Cocoa,而不是Cocoa Touch或iPhone.所以我不确定那里是否适用.
iphone ×6
uikit ×4
cocoa-touch ×3
objective-c ×3
autorelease ×2
macos ×2
calayer ×1
cocoa ×1
generics ×1
java ×1
terminology ×1