Использование NSArray с Monotouch - PullRequest
5 голосов
/ 06 декабря 2009

Как вставить элементы в объект NSArray в C # (Monotouch)? Я не могу найти подходящий метод для этого? На стороне Objective-C есть конструктор с именем "initWithObjects", но я не нахожу его на стороне C #.

П

Ответы [ 3 ]

5 голосов
/ 12 декабря 2009

Извините, что отвечаю на ваш вопрос вопросом, но вы уверены, что хотите создать NSArray?

Я спрашиваю, потому что MonoTouch делает некоторую работу за кулисами, чтобы вам не приходилось иметь дело с NSArray.

Если вы перейдете на страницу разработки API MonoTouch и выполните поиск на странице «NSArray», вы найдете следующее:

Вместо того, чтобы работать с NSString и NSArray, среда выполнения вместо этого представляет их как строки C # и строго типизированные массивы по всему API.

Другими словами, если у вас нет особых причин, вам не нужно связываться с NSArray.

Но, если у вас есть причина, или если это ваши предпочтения, то ответ Джейсона верен:

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

Единственное, что я хотел бы добавить, это то, что если вы разработчик Objective-C и даете MonoTouch попробовать, вы привыкли к этому:

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

Разница - «ноль» в конце версии Objective-C. NSArray MonoTouch не имеет такого же требования. Вы просто передаете ему объекты, которые хотите, чтобы он содержал, и он с радостью делает это. Завершающий нуль не требуется:)

Надеюсь, это поможет ...

2 голосов
/ 07 декабря 2009

Я не использую Monotouch - но если вы хотите манипулировать NSArray, вы захотите использовать его кузен, NSMutableArray.

1 голос
/ 07 декабря 2009

Похоже, вам нужен статический метод:

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

Используется так:

NSArray arr = NSArray.FromNSObjects(obj1, obj2, obj3);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...