10.5ベースSDK,10.4展開:実装方法に抜方法
-
06-09-2019 - |
質問
いプロジェクト目標の両方Mac OS X10.4 10.5、10.5をベースをサポート。
の方法のように -[NSString stringByReplacingOccurrencesOfString:withString]
は不可10.4.私だけの実施を機能です。別のオプションは、次のメソッドを実装してカテゴリがこの混乱の10.5実施やったことは反省すべきだと思いたいと思い避けなければなりません。
どのようにしていけど、方法10.4なし相談で10.5となっているようで、実施し、簡単にどうしたらよろしいですか止め支援10.4?
解決
やろうと思い立ったら、そのとき使用 +load
や +initialize
へ 荷重方法で実行 このメソッドのいは既に存在しています。
他のヒント
if ([myString respondsToSelector: @selector(stringByReplacingOccurrencesOfString:withString:)])
{
// 10.5 implementation
}
else
{
// 10.4 implementation
}
カテゴリを使用しますが、メソッド名のタグを置きます。例えば、stringByReplacingOccurrencesOfString_TigerCompatible:
。実装では、Leopardの実装や、独自のいずれかを呼び出します。
、「TigerCompatible」のプロジェクト検索を行う場合、その呼び出しサイトのそれらのメソッドのすべてと非タグすべてをburninateます。
タイガーの下で実行されている場合)(メインで起動時にロードされているバンドルにカテゴリ内のすべての行方不明の実装を置きます。
どのようにそれが10.4用に構築されていた場合、関連するメソッドを挿入するためにCプリプロセッサマクロを使用してはどうですか?たぶんカテゴリにこのような何かをやってみてください、それが10.4用に構築されていた場合に10.4に存在しないこれらのメソッドのみが含まれていますか。
#if defined(MAC_OS_X_VERSION_10_4) && MAC_OS_X_VERSION_MAX_ALLOWED <= MAC_OS_X_VERSION_10_4
// Put your implementations of the methods here
#endif
あなたは10.4をサポートする必要がありますか?アプリのコア部分で10.5メソッドのみを使用している場合、唯一の10.5を行くを検討するための時間かもしれません。
とにかく、具体的な例としては、上記で与えられたと、私はそれから離れて移動すると、あなたが10.4で作業を行うNSMutableStringに類似の方法を使用することができますので、あなたの文字列の変更可能なコピーを作成することをお勧め