2

重複の可能性:
XCodeが新しいAPI呼び出しについて警告する方法はありますか?

iOS4.3からiOS6.xをサポートするアプリを作成しています。しかし、私は無意識のうちに__OSX_AVAILABLE_STARTING(__ MAC_NA、__IPHONE_6_0)とマークされたメソッドを使用しました。これは、セレクターが以前のバージョンのiOSには存在しないことを意味します。

もちろん、iOS 5.xデバイスでコードをテストすると、アプリがクラッシュしました。私は何が起こっているのかを理解し、respondsToSelectorチェックを挿入し、このチェックに失敗した場合はデフォルトで「iOS4.xの方法」で処理を実行します。

将来、これらのバグを防ぐにはどうすればよいですか?適切なiOS機能チェックを追加できるように、iOS-6のみのメソッドにアクセスしていることを確認するコンパイル時の方法はありますか?

セレクターが存在しないため、iOS6デバイスで正常に動作する製品を誤って出荷したくなく、誰かのiOS4.3デバイスで失敗するだけです。

4

1 に答える 1

1

ここでの答えは私のために働いた:https ://stackoverflow.com/a/8919108/208989

このヘッダーをダウンロードします:https ://github.com/mattjgalloway/MJGFoundation/blob/master/Source/Utilities/MJGAvailability.h

そして、.pchファイルの先頭に次のように配置します。

#define __IPHONE_OS_VERSION_SOFT_MAX_REQUIRED __IPHONE_4_3
#import "MJGAvailability.h"
于 2012-11-28T02:40:07.050 に答える