Я хочу добавить категорию в NSBezierPath, чтобы возвращать CGPathRef для пути. Поскольку это базовый объект, я не могу его автоматически освобождать, и за его освобождение отвечает вызывающий метод. Размещая «Копировать» или «Создать» как часть имени метода, я думаю, что следую соглашению, установленному Apple здесь: https://developer.apple.com/library/mac/#documentation/CoreFOundation/Conceptual/CFMemoryMgmt/Concepts/Ownership.html
Однако статический анализатор не примет его, если я не пойду еще дальше и не только включу create/copy как часть имени, но и на самом деле начну имя метода с «copy» (или mutableCopy и т. д.).
Однако это противоречит передовой практике именования методов категорий, поскольку они должны иметь префикс, чтобы избежать конфликта имен.
Каков наилучший способ достижения всего следующего:
- Добавление метода в категорию в классе Cocoa
- … который возвращает объект Core Foundation
- … который не будет выдавать предупреждений в анализаторе
- … и названы в соответствии с лучшими практиками?