如果 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
。