Iphone 将NSArray与Monotouch一起使用

Iphone 将NSArray与Monotouch一起使用,iphone,objective-c,nsarray,xamarin.ios,mutable,Iphone,Objective C,Nsarray,Xamarin.ios,Mutable,如何在C#(Monotouch)中向NSArray对象插入项?我找不到合适的方法这样做?在Objective-C端,有一个名为“initWithObjects”的构造函数,但我在C端找不到 pom看起来这个静态方法就是您想要的: public static NSArray FromNSObjects (params NSObject[] items); 这样使用: NSArray arr = NSArray.FromNSObjects(obj1, obj2, obj3); 我没有使用Mono

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


pom

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

public static NSArray FromNSObjects (params NSObject[] items);
这样使用:

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

我没有使用Monotouch,但是如果你想操纵一个NSArray,你会想使用它的表亲NSMutableArray

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

我这样问是因为MonoTouch在幕后做了一些工作,这样你就不必处理NSArray了

如果您转到并在页面内搜索“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:)


希望这有帮助…

那不是插入,那是用对象创建。这实际上是我想要的,我只是把我的问题表述错了。鬼鬼祟祟:根据他的问题,听起来他想用单触方式调用
initWithObjects
。你可以将我的标记为已接受:)这也适用于NSDictionary,因为还有NSMutableDictionary。仅供参考。感谢您让我注意到MonoTouch的内部努力。我不知道。