5

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

绒球

4

3 回答 3

5

很抱歉用一个问题来回答你的问题,但你确定要创建一个 NSArray 吗?

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

如果您访问MonoTouch API 设计页面并在页面内搜索“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 :)

希望这可以帮助...

于 2009-12-12T04:08:15.950 回答
2

我没有使用 Monotouch - 但如果你想操作一个 NSArray,你会想要使用它的表亲 NSMutableArray。

于 2009-12-07T00:34:47.977 回答
1

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

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

像这样使用:

NSArray arr = NSArray.FromNSObjects(obj1, obj2, obj3);
于 2009-12-06T22:20:25.203 回答