0

在prepareForSegue期间,我尝试为属性赋值并得到错误

2012-05-09 23:14:22.122 LeakSpotter [17709:15b03] *由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[UIViewController setCoordLong:]:无法识别的选择器发送到实例 0xa86e930”

标题:

@property (nonatomic, retain) NSString *CoordLong;
@property (nonatomic, retain) NSString *CoordLat;

它们是合成的。

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{

NSLog(@"Fired segue %@", [segue identifier]);
if([[segue identifier] isEqualToString:@"returnToLeakSpotter"]){
    NSLog(@"Return to leak spotter segue...");
    //ContactsViewController *cvc = (ContactsViewController *)[segue destinationViewController];

}else if ([[segue identifier] isEqualToString:@"gotoTakePhoto"]) {
    NSLog(@"Go to photo view");
    takePhotoViewController *takePhotoC = [segue destinationViewController];

    takePhotoC.CoordLong = @"-9.88";
    takePhotoC.CoordLat = @"45.45";

我错过了什么明显的东西吗?

谢谢

4

2 回答 2

4

看起来您还没有在情节提要中的 takePhotoViewController 上设置视图控制器子类,因此它正在实例化一个不知道 CoordLat 是什么的基本 UIViewController(如错误所示)。

顺便说一句,按照惯例,类名以大写字母开头,变量/属性以小写字母开头,您似乎反其道而行之。

于 2012-05-09T22:38:43.963 回答
0

您可能需要转换您的 viewController,因为 destinationViewController 默认返回 UIViewController。

takePhotoViewController *takePhotoC = (takePhotoViewController *)[segue destinationViewController];
于 2012-05-09T23:25:39.740 回答