NSLog จาก appDelegate

ภายใน AppDelegate.m ฉันกำลังพยายามดึงข้อมูลจากสตริงที่ฉันได้รับจาก URL ที่เข้ามา ฉันไม่แน่ใจว่าทำไม NSLog จึงไม่พิมพ์อะไรเลย...

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions openURL:(NSURL *)url
{
    // incoming URL...
    // i.e.  palsvid://blabla.com/foo.php?request=laa&id=1004


    NSString *q = [url query];

    NSLog(@"%@",q); // Does not log anything! Even with a hard coded string!

    NSArray *pairs = [q componentsSeparatedByString:@"&"];
    // ...

ฉันทำอะไรผิดหรือเปล่า? ฉันอัปเดต plist เพื่อยอมรับ URL ตอนนี้ฉันต้องการแยกวิเคราะห์

ในที่สุด ฉันจะนำข้อมูลนี้ไปใช้ใน ViewController ของฉัน NSLog ทำงานในวิธี ViewController...

ขอบคุณ


person broinjc    schedule 31.01.2014    source แหล่งที่มา
comment
หากไม่ได้บันทึกอะไรเลย แม้แต่สตริงที่ฮาร์ดโค้ด ก็อาจไม่ได้รับการเรียกหรือคุณกำลังใช้งานแอปเวอร์ชันอื่นนอกเหนือจากที่คุณคิด (นั่นเกิดขึ้นกับฉันวันนี้!) คุณช่วยแสดงสตริงบนหน้าจอด้วยวิธีอื่นได้ไหม เช่น โดยการตั้งค่าข้อความของป้ายกำกับหรืออะไรสักอย่าง   -  person user1118321    schedule 31.01.2014


คำตอบ (1)


คุณมีลายเซ็นเมธอดที่ไม่ถูกต้อง ดังนั้นเมธอดของคุณจึงไม่ถูกเรียก ไม่มีพารามิเตอร์ openURL: คุณต้องการ:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // your code here
}

สิ่งนี้เรียกว่าเมื่อแอปของคุณเริ่มต้นตั้งแต่ต้น

ในการจัดการกับแอปของคุณที่ถูกเรียกจากแอปอื่นหรือการส่ง URL คุณต้องดำเนินการดังต่อไปนี้:

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
    // process URL here
}

โปรดอ่านเอกสารสำหรับ UIApplicationDelegate รวมถึงเอกสารวงจรการใช้งานแอปที่เกี่ยวข้อง

person rmaddy    schedule 31.01.2014