2014-03-26 2 views
0

내가 car2go 스타일 앱을 구현하려고하는데, 여기에서 특수 효과보기를 클릭 한 다음 자동차를 예약 할 수 있습니다. 문제는 내가 차 객체를 넘기려고 할 때 segue를 시도 할 때 객체가 selector set vehicles를 수행하는지 확인하지만 if 문은 구현되었음을 확신하지만 실패합니다. 누군가 왜 저에게 말할 수 있습니까? 이것은 학교 프로젝트를위한 것입니다.클래스에 대한 Setter가 호출되지 않습니다.

#import "MapViewController.h" 
#import <MapKit/MapKit.h> 
#import <CoreLocation/CoreLocation.h> 
#import "Vehicles+Company.h" 
#import "Vehicles+MKAnnotation.h" 

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

if ([segue.identifier isEqualToString:@"reserveCar"]) { 
    if ([sender isKindOfClass:[MKAnnotationView class]]) { 
     MKAnnotationView *aView = sender; 
     if ([aView.annotation isKindOfClass:[Vehicles class]]) { 
      Vehicles *vehicle = aView.annotation; 
      if ([segue.destinationViewController respondsToSelector:@selector(setVehicle:)]) { 
       [segue.destinationViewController performSelector:@selector(setVehicle:) withObject:vehicle]; 
      } 
     } 
    } 
} 

} 

이것은 뷰 컨트롤러입니다.

.H 파일

#import <UIKit/UIKit.h> 
#import "Vehicles+MKAnnotation.h" 
#import "Vehicles.h" 
#import "Vehicles+Company.h" 


@interface CompanyVehicleViewController : UIViewController 

@property (nonatomic,strong) Vehicles *vehicle; 

@end 

하는 .m 파일

#import "CompanyVehicleViewController.h" 

@interface CompanyVehicleViewController() 

@end 

@implementation CompanyVehicleViewController 

-(void) setVehicle:(Vehicles *)vehicle{ 
_vehicle = vehicle; 
self.title = vehicle.name; 
NSLog(@"Vehicle is %@", vehicle); 
} 

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil 
{ 
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; 
if (self) { 
    // Custom initialization 
} 
return self; 
} 

- (void)viewDidLoad 
{ 
[super viewDidLoad]; 
// Do any additional setup after loading the view. 
} 

@end 
+0

'segue.destinationViewController'가 실제로 'CompanyVehicleViewController'의 인스턴스인지 확인하십시오. – rmaddy

+0

어떻게 할 수 있습니까? – user2076774

+0

디버거를 사용하거나'NSLog' 문을 추가하십시오. – rmaddy

답변

1

는 대부분의 경우 segue.destinationViewControllerCompanyVehicleViewController의 인스턴스가 아닌.

스토리 보드에서보기 컨트롤러의 유형이 적절한 클래스로 설정되어 있는지 확인하십시오.

관련 문제