解决方法
In Cocoa,what is the purpose of the main.m class?
没有,因为没有一个.
首先,.m文件不是类.也不是.h.将类的@interface放在.h(头文件)文件中并将其@implementation放在.m(实现)文件中的做法是一种约定,仅此而已.这是一个很好的约定,但它没有被语言强制执行.
因此,.m文件包含零个或多个类实现.通常,它只是一个.有时它是两个,另一个是一个小的私有类,其@interface也在同一个文件中.
main.m不包含任何类.它通常只包含一个名为main的函数.
main来自C(其中Objective-C是超集),并且是程序的入口点:它是程序开始运行的地方.一切都发生在这里,或者在这里调用的函数中.命令行工具通常也会通过主返回退出.
Cocoa应用程序中的大多数主要功能都是项目模板附带的默认功能;这个实现只是尾部调用NSApplicationMain,它设置共享的NSApplication对象并启动它运行.那个功能永远不会回来当用户退出Cocoa应用程序时,该过程就会退出.
您可能想要阅读我写的this list of important facts about Cocoa and Objective-C.听起来你有一些误解(可能是从你更熟悉的另一个框架中带来的),这个列表可以为你清理.
How do I run code independently of UI actions (as in,not only in response to a button push)?
这取决于你何时尝试这样做.例如,定期行动将是timer的工作.
I’m trying to initialize some objects and run some scripts BEFORE i awakeFromNib. How do I do this?
您可以在initWithCoder:中执行此操作,该文件将发送到从存档(包括您的存档)实例化的每个非视图层对象.笔尖也是档案馆.
您可能还会考虑成为应用程序委托并实施a applicationWillFinishLaunching:
method.
第三种方法是将代码填入main.请注意,除非您将其包装在@autoreleasepool语句中,否则此处几乎所有Cocoa代码都可能会记录“no autorelease pool”警告;其他解决方案没有此问题,因为NSApplication已经为您创建了自动释放池.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。