如何在 C# (Monotouch) 中将项目插入 NSArray 对象?我没有找到合适的方法吗?在 Objective-C 方面,有一个名为“initWithObjects”的构造函数,但我在 C# 方面没有找到它。
绒球
如何在 C# (Monotouch) 中将项目插入 NSArray 对象?我没有找到合适的方法吗?在 Objective-C 方面,有一个名为“initWithObjects”的构造函数,但我在 C# 方面没有找到它。
绒球
很抱歉用一个问题来回答你的问题,但你确定要创建一个 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 :)
希望这可以帮助...
我没有使用 Monotouch - 但如果你想操作一个 NSArray,你会想要使用它的表亲 NSMutableArray。
看起来这个静态方法就是你想要的:
public static NSArray FromNSObjects (params NSObject[] items);
像这样使用:
NSArray arr = NSArray.FromNSObjects(obj1, obj2, obj3);