我有两节课。
#import <Foundation/Foundation.h>
@interface APPagineMedia : NSObject
@property (nonatomic, retain) NSString *Immagine;
@property (nonatomic, retain) NSString *Video;
@end
@interface APPagineDescription : NSObject
@property (nonatomic, retain) NSString *Descrizione;
@end
@interface APPagineSommarioLinee : NSObject
@property (nonatomic, retain) NSString *Description;
@property (nonatomic, assign) int IdLinea;
@end
@interface APPagineSommarioCategorie : NSObject
@property (nonatomic, retain) NSString *Nome;
@property (nonatomic, assign) int DestId;
@property (nonatomic, retain) APPagineSommarioLinee *Linee;
@end
@interface APPagineSommario : NSObject
@property (nonatomic, retain) APPagineSommarioCategorie *Categorie;
@end
@interface APPagine : NSObject
@property (nonatomic, assign) NSString *Layout;
@property (nonatomic, assign) int Indice;
@property (nonatomic, retain) NSString *Titolo;
@property (nonatomic, retain) APPagineMedia *Media;
@property (nonatomic, retain) APPagineDescription *Descrizione;
@property (nonatomic, retain) APPagineSommario *Sommario;
@end
@interface APXmlData : NSObject
@property (nonatomic, retain) NSString *Lingua;
@property (nonatomic, assign) float Versione;
@property (nonatomic, assign) long long Timestamp;
@property (nonatomic, retain) APPagine *Pagine;
@property (nonatomic, retain) APCategorie *Categorie;
@property (nonatomic, retain) APCarousel *Carousel;
@end
最后在我的控制器界面中:
#import "APXmlData.h"
@interface APViewController : UIViewController
{
APXmlData *_XmlData;
}
@end
并在实施中:
_XmlData.Timestamp = 123;
_XmlData.Version = 1.0;
_XmlData.Pagine = [[APPagine alloc] init];
_XmlData.Pagine.Layout = @"a";
_XmlData.Pagine.Indice = 1;
_XmlData.Pagine.Titolo = @"titolo";
//[...]
但是,
当我去设置数据
_XmlData.Pagine = [[APPagine alloc] init];
他给我一个链接器错误,经典
架构i386的未定义符号:
“_OBJC_CLASS _ $ _ APPagineDescription”,引自:
APPagine.o中的objc-class-ref“_ OBJC_CLASS _ $ _ APPagineMedia”,引自:
APViewController.o中的objc-class-ref APPagine.o中的objc-class-ref“_ OBJC_CLASS _ $ _ APPagineSommario”,引自:
APPagine.o中的objc-class-refld:找不到架构i386 clang的符号:错误:链接器命令失败,退出代码为1 (使用-v查看调用)
我的问题是: import
控制器中的课程的正确方法是什么?
应该使用#import
还是@class
?
按顺序?
需要@class
或#import
的课程有哪些?
在构建 - &gt;编译源,两个文件都已正确配置
如果我删除_XmlData.Pagine = [[APPagine alloc] init];
应用运行良好
感谢。
答案 0 :(得分:2)
您收到的错误是链接器错误,而不是编译器错误,因此看起来#import
已正确完成。当程序链接器找不到实现时,会发生链接器错误。我建议你查一下:
@implementation
例如APPagine.m 答案 1 :(得分:0)
问题是你的viewController只是
#import "APXmlData.h"
在viewController中使用_XmlData.Pagine = [[APPagine alloc] init];
您还应该使用
在viewController中导入APPagine
类
#import "APPagine.h"
答案 2 :(得分:0)
您遇到链接器错误这一事实意味着问题与您的#import
或@class
声明无关。问题是您的项目缺少此类的.m文件(如果库包含您自己应该编译的源)或库(.a或.dylib或.framework,如果库已经存在)为你编译)。检查目标设置中的“构建阶段”,以确保项目中包含必要的文件。