1

Xamarin.iOS を使用して、ドック コネクタ経由で iPod と iPhone に接続するアクセサリ用の Objective-C ライブラリをラップしています。テスト アプリの Info.plist の UISupportedExternalAccessoryProtocols に値がないことに気付く前に、テスト アプリでアクセサリを機能させるために多くの時間を無駄にしました。

私のラッパー ライブラリを使用するときに、他の人が同じ問題に遭遇するのを防ぎたいと思います。これはライブラリなので、プロジェクトに Info.plist を含めることはできませんよね? したがって、呼び出し元が UISupportedExternalAccessoryProtocols に対して持っている値を列挙して、開発者に値が不足しているというメッセージを読みやすくすることができます。実行時にこれを行う方法はありますか?

ありがとう!

4

2 に答える 2

1

使用できます

var values =  NSBundle.MainBundle.ObjectForInfoDictionary("UISupportedExternalAccessoryProtocols"); 

Info.plist から値を読み取り、必要な値がすべて含まれているかどうかを確認します。

于 2016-04-26T21:07:42.987 に答える
1

これらのいずれかで、次の値にアクセスできますInfo.plist

    var protocolArray = (NSArray)NSBundle.MainBundle.InfoDictionary ["UISupportedExternalAccessoryProtocols"];

または

    var protocolArray = (NSArray)NSBundle.MainBundle.ObjectForInfoDictionary ("UISupportedExternalAccessoryProtocols");

次に、次のように値を取得します。

        for (nuint i = 0; i < protocolArray.Count; i++) {
            Console.Write (protocolArray.GetItem<NSString> (i).ToString ());
        }
于 2016-04-26T21:08:36.327 に答える