недопустимый идентификатор интерфейса

#ios #objective-c

#iOS #objective-c

Вопрос:

Привет, я новичок в разработке iOS. У меня очень мало информации об этом. Я видел ЗДЕСЬ учебное пособие, я следую ему, но почему-то я сталкиваюсь с ошибкой, и я не знаю почему.

вот мой код: это мой «AuthorVC» в моих руководствах

заголовочный файл:

 #import <UIKit/UIKit.h>
#import <sqlite3.h>

@interface ServicesMani : UITableViewController{

    NSMutableArray *theservices;
    sqlite3 *db;
}

@property (nonatomic,retain) NSMutableArray *theservices;

-(NSMutableArray *) servicelist;

@end
  

и вот реализация:

 @implementation ServicesMani
@synthesize theservices;
  

ошибка синтеза.

Комментарии:

1. В чем именно заключается ошибка? И, не глядя, вы можете сказать, что это старый учебник, поскольку вам больше не нужно использовать synthesize.

2. он говорит «недопустимый идентификатор интерфейса»

3. Вы #import "ServicesMani.h" в ServicesMani.m ?

Ответ №1:

Удалить NSMutableArray *theservices; между { и } в @interface разделе:

 @interface ServicesMani : UITableViewController{
    sqlite3 *db;
}
  

Компилятор автоматически создаст резервную переменную экземпляра для @property theservices .

Ответ №2:

Здесь нет необходимости использовать это утверждение. Удалите это утверждение из вашего файла .m (implementation), и это сделает это.

 @synthesize theservices;
  

Удалите это. Должны быть синтезированы только те свойства, которые объявлены в файлах .h. И это тоже необязательно. Вам нужно удалить это и просто напрямую использовать theservices переменную в вашем файле .m