NSBezierPath にカテゴリを追加して、パスの CGPathRef を返したいと考えています。これはコア基盤オブジェクトであるため、自動解放することはできず、メソッドの呼び出し元が解放する必要があります。メソッド名の一部として「コピー」または「作成」を配置することで、Apple が設定した規則に従っていると思います: https://developer.apple.com/library/mac/#documentation/CoreFOundation/Conceptual/ CFMemoryMgmt/Concepts/Ownership.html
ただし、静的アナライザーは、さらに先に進み、名前の一部として create/copy を含めるだけでなく、実際にメソッド名を「copy」(または mutableCopy など) で開始しない限り、それを受け入れません。
ただし、名前の競合を避けるために接頭辞を付ける必要があるため、これはカテゴリ メソッドの名前付けのベスト プラクティスに違反しています。
次のすべてを達成するための最良の方法は何ですか?
- Cocoa クラスのカテゴリにメソッドを追加する
- … Core Foundation オブジェクトを返す
- … アナライザーで警告が表示されません
- …ベストプラクティスに従って名前が付けられていますか?