gpt4 book ai didi

ios - 将参数传递给另一个 View Controller 时出现异常

转载 作者:行者123 更新时间:2023-11-29 02:13:22 25 4
gpt4 key购买 nike

昨晚我让一个项目开始运行。今天早上,没有任何更改的同一个项目在此方法中抛出异常:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
// Make sure your segue name in storyboard is the same as this line
if ([[segue identifier] isEqualToString:@"nuevo_servicio_segue"])
{
NSLog(@"estoy en segue pasando a nuevo servicio");
// Get reference to the destination view controller
NuevoServicioViewController *vc = [segue destinationViewController];
//pasamos la latitud del PO
//la convertimos a String
NSString *latitud = [NSString stringWithFormat:@"%.20f", self.puntoOrigen.latitude];
vc.parametro_origin_latitude = latitud;
//lo comprobamos
NSLog(@"LATITUD DEL PO PASADA=%@",latitud);
//pasamos la lONGITUD del PO
//la convertimos a String
NSString *longitud = [NSString stringWithFormat:@"%.20f", self.puntoOrigen.longitude];
vc.parametro_origin_longitude = longitud;
//lo comprobamos
NSLog(@"LONGITUD DEL PO PASADA=%@",longitud);

}
}

异常(exception)是在以下行:

vc.parametro_origin_latitude = latitud;

vc.parametro_origin_longitude = longitud;

如果我注释这两行,应用程序不会崩溃,并且我完全确定我没有更改任何代码。

我需要你的帮助才能理解它。

编辑:

异常

2015-03-13 10:00:57.816 ABC[1358:29933] estoy en segue pasando a nuevo servicio
2015-03-13 10:00:57.816 ABC[1358:29933] -[UINavigationController setParametro_origin_latitude:]: unrecognized selector sent to instance 0x80ce83b0
2015-03-13 10:00:57.819 ABC[1358:29933] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UINavigationController setParametro_origin_latitude:]: unrecognized selector sent to instance 0x80ce83b0'
*** First throw call stack:
(
0 CoreFoundation 0x00c15946 __exceptionPreprocess + 182
1 libobjc.A.dylib 0x0089ea97 objc_exception_throw + 44
2 CoreFoundation 0x00c1d5c5 -[NSObject(NSObject) doesNotRecognizeSelector:] + 277
3 CoreFoundation 0x00b663e7 ___forwarding___ + 1047
4 CoreFoundation 0x00b65fae _CF_forwarding_prep_0 + 14
5 ABC 0x0005723d -[MainViewController prepareForSegue:sender:] + 445
6 UIKit 0x017f9b37 -[UIStoryboardSegueTemplate _perform:] + 199
7 UIKit 0x0133681c -[UIViewController performSegueWithIdentifier:sender:] + 72
8 ABC 0x00056eb9 -[MainViewController boton_solicitar_action:] + 1001
9 libobjc.A.dylib 0x008b47cd -[NSObject performSelector:withObject:withObject:] + 84
10 UIKit 0x011de23d -[UIApplication sendAction:to:from:forEvent:] + 99
11 UIKit 0x011de1cf -[UIApplication sendAction:toTarget:fromSender:forEvent:] + 64
12 UIKit 0x01311e86 -[UIControl sendAction:to:forEvent:] + 69
13 UIKit 0x013122a3 -[UIControl _sendActionsForEvents:withEvent:] + 598
14 UIKit 0x0131150d -[UIControl touchesEnded:withEvent:] + 660
15 UIKit 0x0122e60a -[UIWindow _sendTouchesForEvent:] + 874
16 UIKit 0x0122f0e5 -[UIWindow sendEvent:] + 791
17 UIKit 0x011f4549 -[UIApplication sendEvent:] + 242
18 UIKit 0x0120437e _UIApplicationHandleEventFromQueueEvent + 20690
19 UIKit 0x011d8b19 _UIApplicationHandleEventQueue + 2206
20 CoreFoundation 0x00b391df __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 15
21 CoreFoundation 0x00b2eced __CFRunLoopDoSources0 + 253
22 CoreFoundation 0x00b2e248 __CFRunLoopRun + 952
23 CoreFoundation 0x00b2dbcb CFRunLoopRunSpecific + 443
24 CoreFoundation 0x00b2d9fb CFRunLoopRunInMode + 123
25 GraphicsServices 0x02d9924f GSEventRunModal + 192
26 GraphicsServices 0x02d9908c GSEventRun + 104
27 UIKit 0x011dc8b6 UIApplicationMain + 1526
28 ABC 0x00066e5d main + 141
29 libdyld.dylib 0x0366dac9 start + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException

最佳答案

该错误告诉您您正试图在没有这些属性的导航 Controller 上设置一些值。 segue 的目标 View Controller 必须是导航 Controller ,因此您需要获取其 topViewController 才能访问您的自定义 Controller 。

    - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
// Make sure your segue name in storyboard is the same as this line
if ([[segue identifier] isEqualToString:@"nuevo_servicio_segue"])
{
NSLog(@"estoy en segue pasando a nuevo servicio");
// Get reference to the destination view controller
UINavigationController *nav= segue.destinationViewController;
NuevoServicioViewController *vc = nav.topViewController;
//pasamos la latitud del PO
//la convertimos a String
NSString *latitud = [NSString stringWithFormat:@"%.20f", self.puntoOrigen.latitude];
vc.parametro_origin_latitude = latitud;
//lo comprobamos
NSLog(@"LATITUD DEL PO PASADA=%@",latitud);
//pasamos la lONGITUD del PO
//la convertimos a String
NSString *longitud = [NSString stringWithFormat:@"%.20f", self.puntoOrigen.longitude];
vc.parametro_origin_longitude = longitud;
//lo comprobamos
NSLog(@"LONGITUD DEL PO PASADA=%@",longitud);

}
}

关于ios - 将参数传递给另一个 View Controller 时出现异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29036905/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com