Как исправить делегат «неопределенные символы для архитектуры x86_64» - PullRequest
0 голосов
/ 06 ноября 2019

Я новичок в изучении 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)

Есть лиможно подсказать как исправить?

спасибо

пс. извините, это первый раз, когда я отвечаю на вопрос? Если что-то, что я не заметил, пожалуйста, скажите мне.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...