我有一个简单的 Cocoa 应用程序(压缩后 39 KB),它由一个应用程序委托 ( AppDelegate
) 和一个NSString
类别(以及一个什么都不做的默认窗口)组成。
在其init
方法中,AppDelegate
创建一个NSSavePanel
. 在执行此操作之前和之后,它会记录通过NSString
类别方法修剪掉空格和换行符的字符串的长度:stringByTrimmingWhitespace
.
该字符串由空格和换行符组成。我的类别方法应该修剪所有这些字符,从而产生一个长度为 0 的字符串。
在NSSavePanel
创建之前,我的stringByTrimmingWhitespace
方法被调用并返回一个长度为 0 的字符串,正如预期的那样。创建之后NSSavePanel
,我的stringByTrimmingWhitespace
方法似乎没有被调用,并且调用的任何方法都不会修剪换行符。但是,NSString
执行完全相同的操作的不同类别方法 - <code>stringByTrimmingWhitespaceAndNewlines - 被调用并按预期工作。
我完全不知道是什么导致我stringByTrimmingWhitespace
没有被调用或如何修复它(除了重命名它,这是我所做的)。我还担心其他类上的其他类别方法可能会被丢弃。有谁知道这里发生了什么?