我确信以前已经以更好的方式问过这个问题,但我试图理解界面元素与类的关系。我的应用程序非常简单,主要是一个填充一些输出日志的 NSTextView
。
我一直只是使用 AppDelegate
来处理我的应用程序的大部分功能,但现在我想稍微分解一下。因此,我创建了一个 Logger 类,其中包含与日志记录部分相关的所有代码,包括处理更新 NSTextView。所以我不确定的是我应该将 NSTextView 的引用导出直接挂接到 Logger 类,还是应该将这两个东西解耦并仅将 NSTextView 的引用传递给 Logger 对象?
最佳答案
你的Logger
,除了它的日志逻辑之外,听起来还包含表示逻辑——它只是获取你的模型(数据),格式化它,然后直接将它传递给你的 NSTextView
来显示它。
听起来您的 NSTextView
本质上连接到您的 Logger
。如果您将 NSTextView
连接到 Logger
中的 socket ,您将能够轻松设置 NSTextView
的 stringValue
code> 通过该引用。
此外,正如您所说,另一种方法是让另一个对象获取对您的 NSTextView
的引用,然后将其传递给您的 Logger
。因为您的 Logger
控制着 NSTextView
的呈现,所以这是没有必要的。事实上,应该是相反的 - 如果有任何其他对象,您可以将您的 IBOutlet 公开(通过将其放置在头文件中,而不是放置在实现文件的类扩展中)需要对您的 NSTextView
的引用(就像一个需要显示该 View 的引用的窗口)
所以我相信你确实想将两者联系起来
关于cocoa - 我的自定义类应该设置为我的引用 socket 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31295574/