Неявное преобразование указателя Objective C в 'int *' запрещено с ARC после перемещения свойства в файл.h

У меня есть контроллер, свойства которого определены следующим образом .m файл:

@interface ContentViewController ()<SwipeViewDataSource, SwipeViewDelegate>
@property (nonatomic, strong)  SwipeView *swipeView;
@property (nonatomic, strong) NSMutableArray *items;
@property (nonatomic, strong) CateItem *cateItem;
@end

Тогда, потому что я хочу получить доступ swaipView а также cateItem в другом контроллере, так что я думаю, что это нормально, чтобы переместить их в .h файл как это:

@interface ContentViewController : UIViewController
@property (nonatomic, strong)  SwipeView *swipeView;
@property (nonatomic, strong) CateItem *cateItem;
@end

Но после этого ранее работающий код выглядит так:

   if([[CateItem allObjects] count ] != 0){
        self.cateItem = [CateItem allObjects][0];
    }

будет жаловаться так:

Что случилось и как это исправить?

как того требует комментарий здесь cateItemего модель царства

#import <Foundation/Foundation.h>
#import <Realm/Realm.h>

@interface LivePhotoItem: RLMObject
@property NSString *image;
@property NSString *video;
@property NSString *fileid;
@property BOOL downloaded;
@end


RLM_ARRAY_TYPE(LivePhotoItem)
@interface CateItem: RLMObject
@property NSString *_id;
@property NSString *cateId;
@property NSString *category;
@property RLMArray<LivePhotoItem> *items;
@property NSString *cnName;
@end

1 ответ

Вам необходимо добавить предварительную декларацию CateItem к ContentViewController заголовок над @interface блок:

@class CateItem;

В противном случае компилятору не хватает информации о типе CateItem, предполагает тип свойства быть int *,

Другие вопросы по тегам