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
'segue.destinationViewController'가 실제로 'CompanyVehicleViewController'의 인스턴스인지 확인하십시오. – rmaddy
어떻게 할 수 있습니까? – user2076774
디버거를 사용하거나'NSLog' 문을 추가하십시오. – rmaddy