Объявите переменную экземпляра в Objective-C и установите в Swift - PullRequest
0 голосов
/ 08 июня 2018

Я хочу иметь возможность установить значение переменной экземпляра из моего класса Objective-C в моем классе Swift.В моем классе Swift я хочу иметь возможность сказать что-то вроде cameraViewController.ingestViewController = self и установить это значение в ingestViewController в моем классе Objective-C.Вот некоторый код для демонстрации:

PhotoViewController.swift:

class PhotoViewController : UIViewController {
    let cameraViewController = // reference to the CameraViewController
    cameraViewController.ingestViewController = self
}

CameraViewController.h:

@interface CameraViewController : GSKCameraViewController

@end

CameraViewController.m:

@interface CameraViewController ()

@property (nonatomic, strong) UIView *toolbar;
@property (nonatomic, strong) UIButton *cameraButton;
@property (class, nonatomic, strong) UIViewController *ingestViewController;

@end

@implementation CameraViewController

UIViewController *ingestViewController

// rest of implementation

@end

Я продолжаю получать сообщение об ошибке Value of type 'CameraViewController?' has no member 'ingestViewController'.

Ответы [ 2 ]

0 голосов
/ 08 июня 2018
@property (class, nonatomic, strong) UIViewController *ingestViewController;

Это свойство класса, а не свойство переменной экземпляра.Так что просто удалите атрибут class.

0 голосов
/ 08 июня 2018

Вы объявили свойство ingestViewController как свойство класса, а не свойство экземпляра.

Удалите атрибут class @property.

@property (nonatomic, strong) UIViewController *ingestViewController;

Onceэто исправления, вам нужно сделать собственность публичной.Переместите его в файл .h:

@interface CameraViewController : GSKCameraViewController

@property (nonatomic, strong) UIViewController *ingestViewController;

@end

Все свойства в .m являются личными.

Наконец, удалите ненужную строку:

UIViewController *ingestViewController

из .m файла.Это фактически объявляет глобальную переменную и никак не связана со свойством с тем же именем.

...