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