我正在尝试在我的数据文件中创建一个可以在我的项目中的另一个类中使用的结构。我一直收到错误消息“链接器命令失败,退出代码1(使用-v查看调用)。另外它告诉我在data.m文件的main方法中有1个重复的符号用于架构x86_64。我爬过一些解决方案页面在这里尝试了所有列出的解决方案,例如确保没有导入.m文件,将Enable Bitcode更改为No,检查没有重复文件,以及从Other Linker Flags中删除-ObjC。对于Objective-c来说,我是一个新手,所以我认为我在宣布这个结构时可能会出错。
//data.h
#import <Foundation/Foundation.h>
@interface data : NSObject
typedef struct Cards
{
__unsafe_unretained NSString* Name;
__unsafe_unretained NSString* Images;
__unsafe_unretained NSString* Phone;
__unsafe_unretained NSMutableAttributedString* Website;
int Restaurant_id;
}Card;
@property Card* ExampleCard;
@end
//data.m
#import <Foundation/Foundation.h>
#import "data.h"
@implementation data
@synthesize ExampleCard;
@end
int main( )
{
Card Salernos;
Card *ExampleCard; // = malloc(sizeof(struct Cards) * 16);
/* Salernos Restaurant specification */
Salernos.Name = @"P. Salerno's III";
Salernos.Images = @"Salernos";
Salernos.Phone = @"(609) 245-0474";
Salernos.Website = [[NSMutableAttributedString alloc]initWithString:@"Order Now!"];//yourTextView.attributedText = str;
[Salernos.Website addAttribute: NSLinkAttributeName value: @"https://www.grubhub.com/restaurant/p-salernos-iii-1292-lower-ferry-rd-ewing/313805?utm_source=google&utm_medium=organic&utm_campaign=place%20action%20link" range: NSMakeRange(0, Salernos.Website.length)];
ExampleCard[0] = Salernos;
return 0;
}
在我想要使用结构中的数据的类中我放
#import "data.h"
...
data *Data;
我想使用的数据被写为Data.ExampleCard [i],其中i是检索数据的for循环的一部分。
答案 0 :(得分:0)
我认为这是因为你正在实现main方法。主要方法由系统自动实现。
You should implement
init method in your .m file instead of
main`之类的东西,
-(instancetype)init{
self = [super init];
if (self) {
Card Salernos;
Card *ExampleCard = malloc(sizeof(struct Cards) * 16);
/* Salernos Restaurant specification */
Salernos.Name = @"P. Salerno's III";
Salernos.Images = @"Salernos";
Salernos.Phone = @"(609) 245-0474";
Salernos.Website = [[NSMutableAttributedString alloc]initWithString:@"Order Now!"];//yourTextView.attributedText = str;
// [Salernos.Website addAttribute: NSLinkAttributeName value: @"https://www.grubhub.com/restaurant/p-salernos-iii-1292-lower-ferry-rd-ewing/313805?utm_source=google&utm_medium=organic&utm_campaign=place%20action%20link" range: NSMakeRange(0, Salernos.Website.length)];
ExampleCard[0] = Salernos;
}
return self;
}