UIViewController *viewVC = nil;
[blah blah blah]
viewVC.referringObject = [selectedObject managedObjectContext];
viewVC.referringTransaction = referringObject;
Однако я получаю сообщение об ошибке при компиляции кода, как:
request for member 'referringObject' in something not a structure or union
Это потому, что UIViewController не имеет referringObject
свойство. (Попробуйте выполнить компиляцию с помощью Clang вместо GCC, вероятно, вы получите более четкое сообщение об ошибке.) У него также нет свойства referringTransaction
, поэтому, если вы вырезаете первое задание, вы получите аналогичную ошибку для второго один.
Вы объявили viewVC
как проведение указатель на UIViewController, так что все компилятор знает: Это viewVC
будет держать либо nil
или указатель на UIViewController. Он не принимает ничего о том, какие подклассы UIViewController вы можете создавать. Вы сказали, что этот объект является UIViewController, поэтому вы не можете назначать свойства этого объекта, потому что у UIViewController их нет.
Необходимо указать viewVC
как держатель указателя мыши на объект, который делает. Так как вы собираетесь хранить указатель на экземпляр одного из двух разных классов (я предполагаю, что оба класса заявляет, что их экземпляры имеют те свойства), есть два решения:
- Сделать протокол, который объявляет два свойства и заставить FirstViewController и SecondViewController объявить соответствие этому протоколу и объявить переменную как содержащую указатель на объект, соответствующий этому протоколу.
- Создайте абстрактный подкласс UIViewController, который объявляет и реализует два свойства, и создает подклассы FirstViewController и SecondViewController абстрактного подкласса и объявляет переменную как содержащую указатель на экземпляр абстрактного подкласса.
Я бы, вероятно, сделал последнее и переместил все, что вы в настоящее время скопировали и вставили между First и SecondViewController в абстрактный класс.
Спасибо, Питер, это именно то, о чем я не думал. Я также внедрил код путем подкласса UiViewcontroller в соответствии с вашей точкой 2, и он отлично работает. Спасибо за помощь. – Accilies