Я новичок в изучении target-c
, когда я узнал о протоколе и делегате, я не могу исправить эту справочную ошибку.
Как мне изменить мой код?
Или моя концепция неверна в отношении кодирования target-c
Я пытался узнать, объявить объект (Info) в другом объекте (InfoUser),
, но, похоже, не вопрос.
Кажется, я могу обработать свойство следующим образом.
#ifndef Info_h
#define Info_h
@protocol InfoDelegate <NSObject>
-(void) initFn;
@end
@interface Info : NSObject
@property (nonatomic, weak) id<InfoDelegate> delegate;
@end
#endif /* Info_h */
#ifndef InfoUser_h
#define InfoUser_h
@interface InfoUser : NSObject
@end
#endif /* InfoUser_h */
#import <Foundation/Foundation.h>
#import "Info.h"
#import "InfoUser.h"
@interface InfoUser ()<InfoDelegate>
@property (nonatomic, strong) Info *infocase;
@end
@implementation InfoUser
-(instancetype) init {
self.infocase = [[Info alloc] init];
self.infocase.delegate = self;
return self;
}
- (void)initFn {
NSLog(@"initFn");
}
@end
вот сообщение об ошибке
Undefined symbols for architecture x86_64:
"_OBJC_CLASS_$_Info", referenced from:
objc-class-ref in InfoUser.o
(maybe you meant: _OBJC_CLASS_$_InfoUser)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see
invocation)
Есть лиможно подсказать как исправить?
спасибо
пс. извините, это первый раз, когда я отвечаю на вопрос? Если что-то, что я не заметил, пожалуйста, скажите мне.