* IDE:XCODE 6 beta3
*语言:Swift + Objective C
这是我的代码。
目标C代码
@implementation arrayTest
{
NSMutableArray *mutableArray;
}
- (id) init {
self = [super init];
if(self) {
mutableArray = [[NSMutableArray alloc] init];
}
return self;
}
- (NSMutableArray *) getArray {
for(...; ...; ...) {
...
NSString *cutFinal = xxx;
[mutableArray addObject: cutFinal];
}
return mutableArray; // mutableArray = {2, 5, 10}
}
Swift Code
var target = arrayTest.getArray() // target = {2, 5, 10}
for index in 1...10 {
for targetIndex in 0..target.count {
if index == target.objectAtIndex(targetIndex) as Int {
println("GET")
} else {
println(index)
}
}
}
我想要以下结果:
1 GET 3 4 GET 6 7 8 9 GET
但是,我的代码给了我错误
libswift_stdlib_core.dylib`swift_dynamicCastObjCClassUnconditional:
0x107e385b0: pushq %rbp
...(skip)
0x107e385e4: leaq 0xa167(%rip), %rax ; "Swift dynamic cast failed"
0x107e385eb: movq %rax, 0x6e9de(%rip) ; gCRAnnotations + 8
0x107e385f2: int3
0x107e385f3: nopw %cs:(%rax,%rax)
if index == target.objectAtIndex(targetIndex-1) as Int {
// target.objectAtIndex(0) = 2 -> but type is not integer
我认为此代码不完整。 但我无法找到解决方案 帮助我T T
我解决了问题!!!
我的目标C代码
NSString *cutFinal = xxx;
[mutableArray addObject: cutFinal];
修复
NSString *cutFinal = xxx;
NSNumber *add = [NSNumber numberWithInteger:[cutFinal intValue]];
[mutableArray addObject: add];
和我的Swift代码
var target = arrayTest.getArray() as [Int]
答案 0 :(得分:0)
我本可以充分利用Swift,写下这样的东西:
for index in 1...10 {
let array = target.filter{$0 == index}
let value = array.count == 0 ? "\(index)" : "GET"
println("\(value)")
}