我想在 NSBezierPath 上添加一个类别以返回路径的 CGPathRef。由于这是一个核心基础对象,我不能自动释放它,方法的调用者负责释放它。通过将“复制”或“创建”作为方法名称的一部分,我认为我遵循 Apple 在此处设置的约定:https ://developer.apple.com/library/mac/#documentation/CoreFOundation/Conceptual/ CFMemoryMgmt/Concepts/Ownership.html
但是,除非我更进一步,否则静态分析器不会接受它,而且——不仅包括 create/copy 作为名称的一部分,而且——实际上以“copy”(或 mutableCopy 等)开头的方法名称。
但是,这样做违反了命名类别方法的最佳实践,因为它们应该加前缀以避免命名冲突。
实现以下所有目标的最佳方法是什么:
- 在 Cocoa 类的类别上添加方法
- …返回一个核心基础对象
- …这不会在分析器中发出警告
- …并根据最佳实践命名?