0

У меня очень большой класс, с которого я пытаюсь создать категорию. В исходном файле «.m» у меня есть 2 объекта (определенные в категории .h-файл), в которых возникают ошибки сборки «unidentified identifier».Свойства, определенные в категории, не найденной в исходном классе

Это определение объекта одного из них в классе UploadViewController + CreateExportFiles.h:

@property (strong, nonatomic) NSArray *booksArray; 

заголовочный файл исходного класс (UploadViewController.h) выглядит следующим образом:

#import "UploadViewController.h" 
#import "UploadViewController+CreateExportFiles.h" 

и использование booksArray в классе, где я получаю ошибку является:

if([[[booksArray objectAtIndex:i] tranCode] isEqualToString:@"A"]) 

Есть ли что-то еще, что я должен сделать для устранения ошибки?

+0

Часть вашей проблемы может заключаться в том, что 'objectAtIndex' возвращает' id', и синтаксический анализатор не распознает 'tranCode'? –

+0

Нет, потому что до того, как я разделил этот класс (оригинал был слишком велик для управления), весь код работал без проблем. – SpokaneDude

ответ

1

Категории не могут добавлять хранилища в классы. Перемещая объявление свойства в категорию из интерфейса основного класса, вы остановили компилятор от создания ivar booksArray для вас, который является сущностью, к которой вы имеете дело, с [booksArray objectAtIndex:i].

Вам нужно вернуть свойство обратно в интерфейс основного класса или расширение класса, или use a workaround.

+0

Привет, Джош ... это позаботилось о проблеме; как я могу назвать класс, который теперь находится в классе категории? У меня есть еще один класс, который создавал экземпляр исходного класса и вызывал этот метод; он, конечно, больше не найден ... т. е. UploadViewController * uvc = [[UploadViewController alloc] init]; [uvc createTabExportFile: @ "Резервное копирование"]; – SpokaneDude

+0

Заголовок категории должен быть импортирован везде, где вы хотите вызвать методы, которые определены в категории, включая свойства. –

+0

Ahhh Crap! Я знал это ... просто забыл об этом ... еще раз спасибо за вашу помощь; Я ценю это ... хорошо провести вечер. SD – SpokaneDude