iOSおよびOSXのAddressBookフレームワーク(iOSの連絡先リストおよびOSXの連絡先)を処理するための便利なメソッドを備え、次のようなメソッドを含むライブラリを構築しようとしています。
(BOOL)addressBookContainsRecordWithID:(NSString *)recordID(NSIntegerOSXの場合)(id)newOrExistingGroupWithName:(NSString *)groupName(id)addressBookRecordWithID:(NSString *)recordID
等
そして、OSXとiOSの両方でこれらのメソッドを呼び出せるようにしたいのですが、そのメソッドに各デバイスのそれぞれのロジックパスを実行させます。たとえば、OSXではを使用するメソッドを使用ABPersonしABGroupますが、iOSではを使用するメソッドを使用しますABRecordRef。
私の現在の計画は、#if device-is-osx callOSXMethod #else callIOSMethodiOSとOSXのどちらを使用しているかを判断し、正しい方法を使用するプリプロセッサディレクティブ()を用意することです。
これについてもっと良い方法はありますか?ここで使えるデザインパターンがある気がします。