cocoa - 我的自定义类应该设置为我的引用 socket 吗?

标签 cocoa

我确信以前已经以更好的方式问过这个问题,但我试图理解界面元素与类的关系。我的应用程序非常简单,主要是一个填充一些输出日志的 NSTextView

我一直只是使用 AppDelegate 来处理我的应用程序的大部分功能,但现在我想稍微分解一下。因此,我创建了一个 Logger 类,其中包含与日志记录部分相关的所有代码,包括处理更新 NSTextView。所以我不确定的是我应该将 NSTextView 的引用导出直接挂接到 Logger 类,还是应该将这两个东西解耦并仅将 NSTextView 的引用传递给 Logger 对象?

最佳答案

你的Logger,除了它的日志逻辑之外,听起来还包含表示逻辑——它只是获取你的模型(数据),格式化它,然后直接将它传递给你的 NSTextView 来显示它。

听起来您的 NSTextView 本质上连接到您的 Logger。如果您将 NSTextView 连接到 Logger 中的 socket ,您将能够轻松设置 NSTextViewstringValue code> 通过该引用。

此外,正如您所说,另一种方法是让另一个对象获取对您的 NSTextView 的引用,然后将其传递给您的 Logger。因为您的 Logger 控制着 NSTextView 的呈现,所以这是没有必要的。事实上,应该是相反的 - 如果有任何其他对象,您可以将您的 IBOutlet 公开(通过将其放置在头文件中,而不是放置在实现文件的类扩展中)需要对您的 NSTextView 的引用(就像一个需要显示该 View 的引用的窗口)

所以我相信你确实想将两者联系起来

关于cocoa - 我的自定义类应该设置为我的引用 socket 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31295574/

相关文章:

ios - 无法拖动或移动自定义 NSWindow

macos - 将NSImageView的CALayer旋转90度

objective-c - Cocoa Webview - 伪装 webview 作为原生控件

xcode - 从 AppDelegate (Swift) 连接到 ViewController

cocoa - 应用程序似乎正在泄漏内存

ios - XCode 4.5 中 ARC 的 Phantom 内存泄漏,其中肯定调用了 dealloc 或 Instruments 问题?

objective-c - 在 NSBundle 中使用 ConnectionKit 框架

iphone - 我必须复制并自动释放该字符串吗?

cocoa - 鼠标拖动 : Not called in NSView subclass

macos - 如何在Cocoa Desktop上以这种方式显示 View ?