Вопрос

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

пом

Это было полезно?

Решение

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

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

Если вы отправитесь в страница дизайна MonoTouch API и выполните поиск по странице "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 не имеет такого же требования.Вы просто передаете ему объекты, которые хотите, чтобы он содержал, и он с радостью это делает.Завершающий null не требуется :)

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

Другие советы

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

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

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

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

NSArray arr = NSArray.FromNSObjects(obj1, obj2, obj3);
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top