如果 Chuzzle 对象为空(falsy),则为 nil;否则,它将移除其中的所有 falsy 部分。
例如
@"".chuzzle 是 nil@" ".chuzzle 也是 nil@"\r\t".chuzzle 也是 nil@" 2 ".chuzzle 是 @"2"@[].chuzzle 是 nil@[@"", @1].chuzzle 是 @[@1][NSNull null].chuzzle 是 nil@{}.chuzzle 是 nil@{@1: @""}.chuzzle 是 nil@{@1: @"", @2: @" 2 "}.chuzzle 是 @{@2: @"2"}注意:"
@" 2 3 "" 在 chuzzle 之后变为 "@"2 3"",也就是说,它只Trim了字符串,并没有消耗内部空白。这正是因为“falsy”的空白只是尾部空白,而不是内部空白。这可能是您期望的结果。
我们移除了可变 chuzzling。在 Cocoa 中向可变变体添加分类方法存在一些问题,这导致我们不得不实施一些特殊的技巧。然而,也有一些意外的问题,例如:https://github.com/mxcl/ChuzzleKit/issues/3
我们容器类上的所有 chuzzle 方法都会在其包含的对象上调用 chuzzle(如果实现了的话)。
因此,如果您想支持您自己的对象上递归 Chuzzling,只需简单地实现一个 chuzzle 方法。
由于 NSNull 不能被编码到 PLIST 中,ChuzzleKit 的一个方便(但绝非主要)用法是将 JSON 保存到 plist 中而不会使程序崩溃(例如通过 writeToFile:atomically)。
-chuzzle 可以作为 -stringByTrimmingCharactersInSet: 更少的巨大替代品,只是不要忘记在响应中期待 nil。