将 NSArray 与 Monotouch 结合使用

发布于 2024-08-14 06:44:21 字数 131 浏览 8 评论 0原文

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

聚甲醛

How to insert items into NSArray object in C# (Monotouch)? I don't find appropriate method to do so? In Objective-C side, there is a constructor called "initWithObjects" but I don't find this on C# side.

pom

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

娇俏 2024-08-21 06:44:21

很抱歉用问题来回答您的问题,但是您确定要创建 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 :)

希望这有帮助......

Sorry to answer your question with a question, but are you sure you want to create an NSArray?

I ask because MonoTouch does some work behind the scenes so that you don't have to deal with NSArray.

If you go to the MonoTouch API Design page and do an in-page search for "NSArray", you'll find this:

Instead of dealing with NSString and NSArray the runtime instead exposes these as C# strings and strongly typed arrays throughout the API.

In other words, unless you have a specific reason to, you don't have to mess with NSArray.

But, if you do have a reason, or if it's your preference, then Jason's answer is correct:

NSArray someArray = NSArray.FromNSObjects(thingOne, thingTwo, thingThree);

The only thing I'd add is that, if you're an Objective-C dev and giving MonoTouch a try, you're used to this:

NSArray *someArray = [NSArray arrayWithObjects:obj1, obj2, obj3, nil];

The difference is the "nil" at the end of the Objective-C version. MonoTouch's NSArray doesn't have this same requirement. You just pass it the objects you want it to contain, and it happily does so. No terminating null required :)

Hope this helps...

紫竹語嫣☆ 2024-08-21 06:44:21

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

I'm not using Monotouch - but if you're looking to manipulate an NSArray, you're going to want to use it's cousin, NSMutableArray.

朕就是辣么酷 2024-08-21 06:44:21

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

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

像这样使用:

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

It looks like this static method is what you want:

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

Used like this:

NSArray arr = NSArray.FromNSObjects(obj1, obj2, obj3);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文