Использование J2objc У меня есть JavaUtilList:
var javaArrayList:JavaUtilList = JavaArrayList()
Я хочу преобразовать этот список в NSArray:
var arr:[String] = // ????
Как преобразовать JavaUtilList в Objective-C/Swift NSArray?
Хороший ответ, но классы коллекции JRE также поддерживают быстрое перечисление:
+ (NSArray *)nsArrayFromList:(id<JavaUtilList>)list {
NSMutableArray *result = [NSMutableArray array];
for (id object in list) {
[result addObject:object];
}
return result;
}
Вы можете использовать iterator
для циклического перехода по каждому элементу:
static inline NSArray *ArrayWithJavaUtilList(id <JavaUtilList> list)
{
NSMutableArray *array = [[NSMutableArray alloc] init];
id <JavaUtilIterator> iterator = [list iterator];
while ([iterator hasNext]) {
id object = [iterator next];
[array addObject:object];
}
return [NSArray arrayWithArray:array];
}
nsArrayFromList
?Type 'JavaUtilList' does not conform to protocol 'SequenceType'
когда я пытаюсь использовать цикл for.