我目前在 Xcode 中遇到 [[UIApplication sharedApplication] openURL:[NSURL URLWithString:]] 方法的一些问题:
在我的 iPhone 应用程序中,我正在从服务器下载一个 .txt 文件并像这样解析它:
NSString * idHelper = [allLines objectAtIndex:18];
appId1 = [idHelper stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
“allLines”是一个数组,其中包含 .txt 文件的所有内容。
“appId1”是一个 NSString。
在上面的代码中,我将 appId1 设置为这个 URL:http: //itunes.apple.com/app/id343200656/
在我的 UIViewController 的 .xib 中,我使用 UIButton 调用以下方法:
- (IBAction)downloadApp:(id)sender {
NSLog(@"downloadApp1");
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:appId1]];
}
此方法应打开移动 App Store 并显示链接中的应用程序。
但是每次我调用这个方法时,应用程序都会崩溃,我就是不知道为什么。
谁能帮我解决这个问题?非常感谢!
编辑:这是崩溃日志。对不起。
`libsystem_c.dylib`memmove$VARIANT$Swift:
0x39df7006: push {r7, lr}
libsystem_c.dylib`memcpy$VARIANT$Swift + 2:
0x39df7008: mov r7, sp
0x39df700a: subs r3, r0, r1
0x39df700c: beq.w 0x39df72ae ; memcpy$VARIANT$Swift + 680
0x39df7010: mov r12, r0
0x39df7012: cmp r3, r2
0x39df7014: blo.w 0x39df72b0 ; memcpy$VARIANT$Swift + 682
0x39df7018: subs.w r3, r2, #32
0x39df701c: bls.w 0x39df72a0 ; memcpy$VARIANT$Swift + 666
0x39df7020: orr.w lr, r0, r1
0x39df7024: orr.w lr, lr, r2
0x39df7028: ands lr, lr, #15
0x39df702c: bne 0x39df7048 ; memcpy$VARIANT$Swift + 66
0x39df702e: subs r3, #32
0x39df7030: vld1.8 {d0, d1, d2, d3}, [r1, :128]!
0x39df7034: vst1.8 {d0, d1, d2, d3}, [r12, :128]!
0x39df7038: bhi 0x39df702e ; memcpy$VARIANT$Swift + 40
0x39df703a: add r1, r3
0x39df703c: vld1.8 {d0, d1, d2, d3}, [r1, :128]
0x39df7040: add r12, r3
0x39df7042: vst1.8 {d0, d1, d2, d3}, [r12, :128]
0x39df7046: pop {r7, pc}
0x39df7048: tst.w r12, #15
0x39df704c: itttt ne
0x39df704e: ldrbne r3, [r1], #1
0x39df7052: strbne r3, [r12], #1
0x39df7056: subne r2, #1
0x39df7058: bne 0x39df7048 ; memcpy$VARIANT$Swift + 66
0x39df705a: and lr, r1, #15
0x39df705e: bic r1, r1, #15
0x39df7062: subs.w r3, r2, #32`
应用程序在“0x39df704e:ldrbne r3,[r1],#1”处崩溃,并带有 EXC_BAD_ACCESS(代码=1,地址=0x0)。
这是启用了僵尸对象的崩溃日志:
libobjc.A.dylib`objc_msgSend:
0x399955c0: teq.w r0, #0
0x399955c4: beq 0x39995606 ; objc_msgSend + 70
0x399955c6: push.w {r3, r4}
0x399955ca: ldr r4, [r0]
0x399955cc: lsr.w r9, r1, #2
0x399955d0: ldr r3, [r4, #8]
0x399955d2: add.w r3, r3, #8
0x399955d6: ldr r12, [r3, #-8]
0x399955da: and.w r9, r9, r12
0x399955de: ldr.w r4, [r3, r9, lsl #2]