可可缺少什么?

Bri*_*ell 13 cocoa cocoa-touch api-design objective-c

如果你可以向Cocoa添加任何东西,它会是什么?是否有任何功能,主要或次要,你会说在Cocoa中缺少.也许有一个轮子你不得不反复发明因为框架中的遗漏?

Qui*_*lor 16

  • 内置的正则表达式支持(一个la RegexKit)非常方便.NSRegularExpression在iOS 4.0+上可用,但在Mac OS X上仍然无法使用.

  • 从大文本文件逐步读取NSString对象而不将整个内容加载到内存中的简单方法.(NSInputStream和NSFileHandle只是没有衡量.)

  • 能够选择性地使NSSet/NSMutableSet/NSCountedSet以排序的顺序存储和枚举对象(如二进制搜索树)肯定会受到欢迎.同样适用于Cocoa数组 - 目前我必须调用类似的东西-[NSArray sortedArrayUsingSelector:]-[NSMutableArray sortUsingSelector:]获取一个排序数组,对于集合,我必须首先创建数组.

  • 堆/优先级队列.CFBinaryHeap周围的Cocoa包装器(它绝对不像Cocoa集合那么容易使用)可能会起作用.

  • 可以为每个键存储多个值的字典,通常称为多集.NSCountedSet几乎是一个multiset/bag,对于键值关联(NSMultiDictionary?)而言,它是相同的,而不是必须自己滚动.

  • FSEvents的友好包装器.(CFFileDescriptor完成了一些工作,但它不是Cocoa-easy.)

  • 一种从格式字符串和对象数组(不仅仅是varargs)创建NSString的方法.这个答案显示了一个例子.让它与原语一起使用会很棘手......也许是NSPointerArray?

  • 一致的集中式API,可简化各种语言环境的电话号码格式化(和解析).目前,您必须使用NSNumberFormatter(或NSScanner)进行自己的操作,并且该过程繁琐且容易出错.(例如,请参阅NSNumberFormatter以格式化US电话号码从NSString中删除除号码之外的所有号码.)

当然,我一般都喜欢各种各样的数据结构,尽管与某些语言相比,Cocoa的简洁性令人耳目一新.

  • NSPredicate至少包括通过MATCHES表达式提供的基本正则表达式. (2认同)

Pet*_*wis 5

一种指定在dealloc中自动释放的复制/保留属性的方法.也许

@property (nonatomic, copy, dealloc) NSString* name;
Run Code Online (Sandbox Code Playgroud)

当然还有RegexKit.

  • 这可能更像是一个Objective-C而不是Cocoa的东西. (2认同)