2013-05-30 68 views
-2

我目前遇到了一些問題與[[UIApplication的sharedApplication]的OpenURL:[NSURL URLWithString:]方法在Xcode:的OpenURL問題在iOS

在我的iPhone應用程序,我下載一個.txt文件從服務器和解析它像這樣:

NSString * idHelper = [allLines objectAtIndex:18]; 
appId1 = [idHelper stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 

「allLines」是在它的.txt文件的所有內容的陣列。

「appId1」是一個NSString。

在上面的代碼,我設置appId1這個網址:http://itunes.apple.com/app/id343200656/

在我的UIViewController的的.xib我打電話下面的方法用一個UIButton:

- (IBAction)downloadApp:(id)sender { 

    NSLog(@"downloadApp1"); 

    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:appId1]]; 
} 

這個方法應該打開移動應用商店並從鏈接中顯示應用。

但每次我打電話給這個方法,應用程序崩潰,我只是不明白爲什麼。

任何人都可以幫助我解決這個問題嗎?非常感謝你!

編輯:這是崩潰日誌。抱歉。在

`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] 
+3

你可以發佈崩潰日誌嗎? – Marioea

+1

沒有日誌或錯誤消息,我們不能做太多。 – mikemike396

+0

打開方案設置中的殭屍對象並重新運行項目。發佈該日誌也。謝謝。 – mikemike396

回答

1

如果你不使用ARC,你應該添加一個保留

appId1 = [[idHelper stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding] retain]; 

作爲構造stringByAddingPercentEscapesUsingEncoding:返回一個autoreleased對象

+0

非常感謝,它工作! – apptunes