2016-09-24 9 views
0

私はXamarinにタイプNSDictionary<NSString, NSObject>のオブジェクトを受け取る関数とインターフェースする必要があります。XamarinのNSDictionary <NSString、NSObject>オブジェクトの値を設定するにはどうすればよいですか?

まず、私は構文を理解していません。 タイプオブジェクトはNSDictionary<NSString, NSObject>と正確には何ですか? NSDictionary型があり、キーと値を作成する方法を知っていますが、NSDictionary<?,?>は何ですか?特別なタプルのようなものがあると思われますか?

第2に、このようなオブジェクトを作成し、キーと関連付けられたオブジェクトを定義するにはどうすればよいですか?

答えて

1

NSDictionary<TKey, TValue>は、NSDictionaryの単なる汎用バージョンです。つまり、キーはすべてタイプTKey(ケースNSString)で、値はすべてTValue(ケースNSObject.)です。これにより、型の安全性が向上します。整数をキーとして追加することはできません。基本となるiOSオブジェクトはまだNSDictionaryです。このクラスはC#での厳密な型定義に慣れており、これを可能な限り使用したいので、「統語的砂糖」のようなものです。

コンストラクタを使用して作成できます。それは複数のコンストラクタを持っています。例えば。 NSDictionary(TKey[] keys, TValue[] values)は、キーと値をパラメータとして受け取り、NSDictionaryを作成します。

var keys = new[] 
{ 
    new NSString("key1"), 
    new NSString("key2"), 
    new NSString("key3"), 
    new NSString("key4") 
}; 

var objects = new NSObject[] 
{ 
    // don't have to be strings... can be any NSObject. 
    new NSString("object1"), 
    new NSString("object1"), 
    new NSString("object1"), 
    new NSString("object1") 
}; 

var dicionary = new NSDictionary<NSString, NSObject>(keys, objects); 
関連する問題