Использование NSArray с Monotouch
-
13-09-2019 - |
Вопрос
Как вставить элементы в объект 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);