我几乎是一个XCode初学者,因此我尝试了XCode文档中给出的“Hello World”示例:快速入门指南:Tutorial: Using Xcode to Write “Hello, World!” for OS X。
我正在使用XCode 4.5.1,我使用OS 10.8.2从我的文档中获取此示例。我按照指示行事;这个例子不起作用。它产生了窗口而不是“hello world”打印。相关代码是:
- (void)drawRect:(NSRect)dirtyRect
{
// Drawing code here.
NSString *hello = @"Hello, World!";
NSPoint point =NSMakePoint(15, 75);
NSMutableDictionary *font_attributes = [[NSMutableDictionary alloc] init];
NSFont *font = [NSFont fontWithName:@"Futura-MediumItalic" size:42];
[font_attributes setObject:font forKey:NSFontAttributeName];
[hello drawAtPoint:point withAttributes:font_attributes];
[font_attributes release];
}
有两个值得注意的事情。此代码的最后一行给出了错误:
release is unavailable: not available in automatic reference counting mode
所以我评论了这一行并运行了该程序。窗口出现了,但没有“Hello World”。 All Output中出现了一条长消息,其中一部分内容为:
"/Users/me/Library/ScriptingAdditions/YouHelper.osax/Contents/MacOS/YouHelper: no matching architecture in universal wrapper
Hello: OpenScripting.framework - scripting addition "/Users/me/Library/ScriptingAdditions/YouHelper.osax" declares no loadable handlers."
我做的事情是愚蠢的,还是我使用了错误的例子?
答案 0 :(得分:2)
您必须在代码末尾删除[font_attributes release];
。
ARC(自动引用计数)中不提供release
,retain
,alloc
和dealloc
。这就是错误所说的。
对于第二个错误,您应该删除任何涉及AppleScript和类似脚本插件的应用程序。
答案 1 :(得分:0)
没有看到你的项目,很难找出它的错误。我的猜测是:你忘了在IB中指定自定义视图的类(“设计用户界面”中的步骤12)。