Nesne-C'ye nispeten yeni geliyorum ve Java arka planından geliyorum, bu yüzden işaretçilerle ilgili kavramları buldum ve iyi açıklanmayan derleme hatalarını oldukça göz ardı ediyorum.Bir UIViewController dosyasının hazırlığıAçıklama
jsonControllerDidLinkedInAuth yöntemiyle bir temsilci uygulayan bir sınıfım var. delegator kendisini ve (NSURL *) url geçirerek, bu sınıfa mesaj göndermek zaman, bu işlemleri bitirir performSegueWithIdentifier, dediğimiz bir özellik authUrl e url atamak çalışıyorum hangi dönüş yürütür içinde prepareForSegue (bunun hakkında benim anlayışım söz konusu olduğu sürece). nedeniyle yakalanmamış istisna 'NSInvalidArgumentException', akıl uygulamayı sonlandırılması *:
App [13517 3278:]: Ben alıyorum olarak
Bu
, çalışmak için görünmüyor '- [UINavigationController setUrlAddress :]: tanınmayan seçici örneği 0x6acab00' SIGABRT uygulamayı sonlandırır
hata mesajı gönderilir.
Her iki yöntem de UINavigationController olan ve başka bir UINavigationController'ı işaret eden aynı sınıfta yer alır. Derleyici, ikinci yöntemin [vc setUrlAddress:self.authUrl];
işaret ediyor.
- (void)jsonControllerDidLinkedInAuth:(JsonController *)controller :(NSURL *)url {
authUrl = url;
if (authUrl != nil) {
[self performSegueWithIdentifier:@"LinkedInAuth" sender:self];
} else {
NSLog(@"Auth URL is null");
}
}
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([[segue identifier] isEqualToString:@"LinkedInAuth"]) {
// Get destination view
LinkedInViewController *vc = [segue destinationViewController];
NSLog(@"The auth url from prepareForSegue in SignupViewControlle: %@", self.authUrl);
[vc setUrlAddress:self.authUrl];
}
}
Sorun şu ki, şu anki sınıfın authUrl özelliğine erişemiyorum. AuthUrl, [self authUrl] ve self.authUrl ile çalıştım ama bunların hiçbiri işi yapmıyor gibi görünüyor. Özellikler sentezlenir, ancak küçük bir ipucu da fark ettim: "UINavigationController setUrlAddress", yukarıdaki metodda tanımlandığı gibi bir LinkedInViewController olması gerekmez mi? Ben casting (LinkedInViewController) [segue destinationViewController] denedim, ama sonra bana bir işaretçi üzerine döküm edemediğinizi bildiren bir mesaj alıyorum.
Herhangi bir yardım çok takdir edilecektir. Okuduğunuz için teşekkürler.
Düzenleme 1: setUrlAddress'in hemen üstündeki NSLog, self.authUrl değerini döndürür. Bir çeşit görünürlük problemi olması gerektiğini düşünüyorum ama bunu nasıl çözeceğimi bilmiyorum.
Teşekkür ederim, bu bir çekicilik gibi çalışır!Ayrıca, benzer bir şekilde davranacak başka ViewControllers var olduğundan, mesajınız bana çok fazla hata ayıklama yaptı. –
Rica ederim. Her defasında yayınlanmak zorunda kalmadan ilgilenen görünüm denetleyicisine erişmenin kolay bir yolu için güncellenmiş yanıtımı görün. –