使用J2objc我有一個JavaUtilList:將JavaUtilList轉換爲NSArray?
var javaArrayList:JavaUtilList = JavaArrayList()
我想這個列表轉換成一個NSArray:
var arr:[String] = // ????
我怎麼能轉換成JavaUtilList一個Objective-C /斯威夫特的NSArray?
使用J2objc我有一個JavaUtilList:將JavaUtilList轉換爲NSArray?
var javaArrayList:JavaUtilList = JavaArrayList()
我想這個列表轉換成一個NSArray:
var arr:[String] = // ????
我怎麼能轉換成JavaUtilList一個Objective-C /斯威夫特的NSArray?
您可以通過每一個項目使用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];
}
很好的回答,但JRE的集合類也支持快速列舉:
+ (NSArray *)nsArrayFromList:(id<JavaUtilList>)list {
NSMutableArray *result = [NSMutableArray array];
for (id object in list) {
[result addObject:object];
}
return result;
}
這是我能做到創建的最佳方式一個使用迭代器的新數組? – confile
據我所知,是的。 – Rufel