2016-09-24 105 views
0

我需要與接收Xamarin中的NSDictionary<NSString, NSObject>類型對象的函數進行交互。如何爲Xamarin中的NSDictionary <NSString,NSObject>對象設置值?

首先,我不明白語法。 究竟是什麼NSDictionary<NSString, NSObject>類型的對象? 我知道有NSDictionary類型,我知道如何創建一個並設置鍵和值,但什麼是NSDictionary<?,?>?它是否是某種特殊的元組?

其次,我該如何創建這樣的對象並定義鍵和關聯對象?

回答

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); 
相關問題