I m a newbie to ObjC/Cocoa and Mac development in general, and toying with the basics.
狮子角的Xcode 4.2中新的可可应用的模拟缺省模板就是这样:
// AppDelegate.h
#import <Cocoa/Cocoa.h>
@interface AppDelegate : NSObject <NSApplicationDelegate>
@property (assign) IBOutlet NSWindow *window;
@end
// Appdelegate.m
#import "AppDelegate.h"
@implementation AppDelegate
@synthesize window = _window;
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
// Insert code here to initialize your application
}
@end
我先把这一基础作为各种实验的基础。 阅读自动参考数字(该项目将使用)——,例如 我假定,也许甚至可以(should)。 替换<代码>assign <代码>NSWindow*window with weak
,但似乎没有。
服用的是罚款,但在开张时用<条码>hang。 图1:方案收到信号:“EXC_BAD_INSTRUCTION”,载于AppDelegate.m
,其行文为@synthesizewindow;
。
将限定语改为<代码>strong 进行方案工作,但我看不出从<条码>到<条码>到<条码>的意思。 下面的印象是,非阿经共体/非经共体的配对物是分配/分配的,保留/保留。
一位经验更丰富的密码朋友建议,即使“weak
等成因window
被过早地处理,而且有些准入尝试失败,该例外应当为EXC_BAD_ACCESS
,而不是EXC_BAD_INSTRUCTION
。
我在这里显然没有东西,但我不知道什么。
http://www.un.org。 在对坠毁时间的 g果进行更仔细的研究之后,同一位朋友向我指出:,Mike Ash 的文章对此做了一些说明。 由于我的理解之外的原因,NSWindow
和其他一些高于retain
和的类别。 不能把提及不力作为目标。 有趣的是,将财产申报改为这项工作:
@property (unsafe_unretained) IBOutlet NSWindow *window;
http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/ObjectiveC/ chapters/ocProperties.html 申报不动产的 Apple果文件。
With that, a REVISED QUESTION:
What would be the proper way to go here? Stick to assign
despite mentions around the web that it shouldn t be used with ARC? Go for strong
? Keep using unsafe_unretained
since it seems to work? Something else?