2016-09-24 101 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); 
相关问题