使用带有Monotouch的NSArray

时间:2009-12-06 14:05:48

标签: iphone objective-c nsarray xamarin.ios mutable

如何在C#(Monotouch)中将项插入NSArray对象?我找不到合适的方法吗?在Objective-C方面,有一个名为“initWithObjects”的构造函数,但我在C#端没有找到它。

POM

3 个答案:

答案 0 :(得分:5)

很抱歉回答您的问题,但是您确定要创建NSArray吗?

我问,因为MonoTouch在幕后做了一些工作,所以你不必处理NSArray。

如果您转到the MonoTouch API Design page并对“NSArray”进行页内搜索,您会发现:

  

运行时不是处理NSString和NSArray,而是在整个API中将它们公开为C#字符串和强类型数组。

换句话说,除非你有特定的理由,否则你不必乱用NSArray。

但是,如果你有理由,或者这是你的偏好,那么Jason的回答是正确的:

NSArray someArray = NSArray.FromNSObjects(thingOne, thingTwo, thingThree);

我唯一要补充的是,如果你是一个Objective-C开发者并尝试使用MonoTouch,你已经习惯了:

NSArray *someArray = [NSArray arrayWithObjects:obj1, obj2, obj3, nil];

差异是Objective-C版本末尾的“nil”。 MonoTouch的NSArray没有同样的要求。您只需将它想要包含的对象传递给它,并且它很乐意这样做。不需要终止null:)

希望这会有所帮助......

答案 1 :(得分:2)

我没有使用Monotouch - 但是如果你想操纵NSArray,你会想要使用它的堂兄NSMutableArray。

答案 2 :(得分:1)

看起来这个静态方法就是你想要的:

public static NSArray FromNSObjects (params NSObject[] items);

像这样使用:

NSArray arr = NSArray.FromNSObjects(obj1, obj2, obj3);