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