swift - Swift 中的新错误告诉我我的委托很弱
问题描述
import Cocoa
NSApplication.shared.delegate = GenerateRandomNickOnApplicationActivation()
_ = NSApplicationMain(CommandLine.argc, CommandLine.unsafeArgv)
这给了我错误:
实例将立即被释放,因为属性“委托”是“弱”
更新:
这行得通。
var activation = GenerateRandomNickOnApplicationActivation()
NSApplication.shared.delegate = activation
_ = NSApplicationMain(CommandLine.argc, CommandLine.unsafeArgv)
解决方案
我无法想象 gobalNSApplication
对象在调用NSApplicationMain()
. (没有双关语)的主要工作之一NSApplicationMain()
是创建NSApplication
对象。
预应用程序启动代码的更好解决方案是使用标准应用程序对象委托方法之一,例如applicationWillFinishLaunching
.
如果你需要很早就运行代码,定义一个 的子类NSApplication
,在你的主 nib 文件中注册它的类,然后将你的启动代码添加到它的初始化程序中。您还可以包含新的实例变量等,以保存对任何值的引用。
推荐阅读
- json - ansible 将 JSON 作为字符串传递而不引用它
- opengl - 在 OpenGL 中,VBO 是否必须包含具有相同顶点布局的数据?
- python - Python 将 2 列转换为 JSON,例如带有额外的引号
- reactjs - 当 observable 发射时更新组件中的 UI
- python - 为什么在熊猫中将excel电子表格转换为数据框时找不到我的文件
- excel - 与 excel direct 中的实际公式相比,UDF 给出不同的结果
- python - 使用 Django 注释字段超集的计数
- typescript - 如果是Typescript中给定字符串的子字符串,如何选择属性
- angular - Angular ngOnInit() 属性不更新值
- xcode - Xcode 显示“该文档有 4 个已发现并修复的问题。/多个资源具有相同的名称:groupTableViewBackgroundColor。” 警报