func returnTotalRouteX()->[Int]{
println("call returnTotalRouteX")
var routeX = [Int]()
for item in totalRoute{
routeX.append(nodeData[item]!.xPosition)
}
println(routeX)
return routeX
}
在OC中调用函数, GetRoute *h = [[GetRoute alloc] init];
if (h.returnTotalRouteX.count == 0) {
NSLog(@"it is empty");
}
else{
NSLog(@"%@",h.returnTotalRouteX);
NSLog(@"%@",h.returnTotalRouteX[0]);
NSLog(@"it is not empty");
}
NSLog(@”%@”,h.returnTotalRouteX[0]);这行只有用%@才能正确输出,若是用%d则输出不正确。我想要获取该int型的数组元素,该如何做呢? |
|
| 60分 |
应该是正常的。
Swift 是支持强类型的,在上面swift 中的方法返回的是一个Int类型的数组。而在oc中,数组是使用NSArray 来存储的。 在oc中通过下标来访问一个NSArray数组中的元素返回的是id类型,所以要使用%@来输出元素的值,而不是%d 如果你非要使用%d的话,就需要做一个类型转换了 id val = h.returnTotalRouteX[0]; int intVal = [val intValue]; NSLog(@"value is :%d",intVal); |