NSLog dari appDelegate

Di dalam AppDelegate.m saya mencoba mengambil barang dari string yang saya dapatkan dari URL masuk. Saya tidak yakin mengapa NSLog tidak mencetak apa pun...

- (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:@"&"];
    // ...

Apakah saya melakukan sesuatu yang salah? Saya memperbarui plist untuk menerima url, sekarang saya ingin menguraikannya.

Akhirnya saya akan mengambil data ini dan menggunakannya di ViewController saya. NSLog berfungsi dalam metode ViewController...

Terima kasih


person broinjc    schedule 31.01.2014    source sumber
comment
Jika aplikasi tidak mencatat apa pun, bahkan string yang dikodekan secara permanen, mungkin aplikasi tersebut tidak dipanggil atau Anda menjalankan versi aplikasi yang berbeda dari yang Anda kira. (Itu terjadi pada saya hari ini!) Bisakah Anda menampilkan string ke layar dengan cara lain, seperti dengan menyetel teks label atau semacamnya?   -  person user1118321    schedule 31.01.2014


Jawaban (1)


Anda memiliki tanda tangan metode yang salah sehingga metode Anda tidak pernah dipanggil. Tidak ada parameter openURL:. Kamu ingin:

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

Itu dipanggil ketika aplikasi Anda dimulai dari awal.

Untuk menangani aplikasi Anda yang dipanggil dari aplikasi lain atau dikirimi URL, Anda perlu menerapkan hal berikut:

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

Harap baca dokumen untuk UIApplicationDelegate serta dokumen siklus hidup aplikasi terkait.

person rmaddy    schedule 31.01.2014