我正在编写一个简单的OS X应用程序,到目前为止结构如下:
AppDelegate.m
ViewControllers
拥有的AppDelegate
个AppDelegate *delegate = (AppDelegate *)[[NSApplication sharedApplication] delegate];
delegate.someProperty = someValue;
并在窗口中显示我有时需要从ViewControllers访问AppDelegate上的属性,我这样做:
AppDelegate
这“感觉”很丑陋。这是一个合适的模式还是真的很蠢?
我提出的两种替代架构是:
第一个感觉纠结和肮脏,第二个感觉不可靠。
这里适当的模式是什么? apply plugin: 'jetty'
拥有的VC如何访问其属性?
答案 0 :(得分:1)
试试这个
AppDelegate *app = [NSApp delegate];
而不是这个
AppDelegate *delegate = (AppDelegate *)[[NSApplication sharedApplication] delegate];
答案 1 :(得分:0)
您可以在NSObject
上定义一个类别,该类别允许您从项目中的任何对象获取AppDelegate
的实例。
@interface NSObject (AppDelegate)
- (AppDelegate *)appDelegate;
@end
然后,您可以在项目.pch文件中包含该类别,以便它可以在任何地方使用。