IOS: нераспознанный селектор отправлен в экземпляр класса Swift в Objective C - PullRequest
0 голосов
/ 02 декабря 2018

Я знаю, что это известное исключение, но я не могу найти решение

У меня есть класс ViewModel.swift , который разделен между target-c View и swift viewController, который я пытаюсь передатьэто как параметр при создании каждого контроллера представления. Он отлично работает в быстром VC, но падает в цели c.

#import <UIKit/UIKit.h>
#import <MapKit/MapKit.h>
@class CarsListViewModel;
@class CarData;

@interface MapViewController : UIViewController
@property (nonatomic, strong) IBOutlet MKMapView *mapView;
@property (nonatomic, retain) CarsListViewModel *viewModel;
+(MapViewController*)createWithViewModel:(CarsListViewModel*)viewModel;
@end


@implementation MapViewController
@synthesize mapView;
@synthesize viewModel;

+(MapViewController*)createWithViewModel:(CarsListViewModel*)viewModel {
    UIStoryboard *sb = [UIStoryboard storyboardWithName:MAIN_STORYBOARD bundle:nil];
    MapViewController * mapViewController = (MapViewController *)[sb instantiateViewControllerWithIdentifier:MAP_VC_Identifier];
    mapViewController.viewModel = viewModel;
    return mapViewController;
}

А вот класс swift

import RxSwift
import RxCocoa
import CoreLocation

@objc
class CarsListViewModel: NSObject {

@objc var carsList = [CarData]()

var selectedBounds = Variable(Places.hamburgBounds)

lazy var data: Driver<[CarData]> = {
    return self.selectedBounds.asObservable()
        .throttle(0.3, scheduler: MainScheduler.instance)
        .flatMapLatest({ (bounds) -> Observable<[CarData]>  in
            return NetworkManager.shared.fetchPlacemarks(forBounds: bounds).flatMapLatest{ Observable.just( $0.poiList ) }
        })
        .asDriver(onErrorJustReturn: [])
}()

}

Iполучаю эту ошибку Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIViewController setViewModel:]: unrecognized selector sent to instance 0x102015920'

1 Ответ

0 голосов
/ 02 декабря 2018

Проблема была в приведении viewController, он работает нормально после того, как непроверенный наследовать модуль от цели Класс раскадровки

...