使用带有Monotouch的NSArray

Pom*_*air 5 iphone objective-c mutable nsarray xamarin.ios

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

POM

Ror*_*yth 5

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

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

如果您转到MonoTouch API设计页面并对"NSArray"进行页内搜索,您会发现:

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

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

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

NSArray someArray = NSArray.FromNSObjects(thingOne, thingTwo, thingThree);
Run Code Online (Sandbox Code Playgroud)

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

NSArray *someArray = [NSArray arrayWithObjects:obj1, obj2, obj3, nil];
Run Code Online (Sandbox Code Playgroud)

不同之处在于Objective-C版本末尾的"nil".MonoTouch的NSArray没有同样的要求.您只需将它想要包含的对象传递给它,并且它很乐意这样做.不需要终止null :)

希望这可以帮助...