在文件CarArray中(没有任何扩展名),我具有类似的数组(这是一个非常简化的版本):
NSString *cars[5][3] = {
{@"1A", @"1B", @"1C"},
{@"2A", @"2B", @"2C"},
{@"3A", @"3B", @"3C"},
{@"4A", @"4B", @"4C"},
{@"5A", @"5B", @"5C"}
}
现在,我想从多个文件中读取数组中的数据,因此我只需使用
#import "CarArray"
我使用循环读取数据。然后我得到这样的错误:
duplicate symbol _cars in:
/Users/Adam/Library/Developer/Xcode/DerivedData/Auto_Center-hgjlsqanvyynncgyfzuorxwchqov/Build/Intermediates/Auto Center.build/Debug-iphonesimulator/Auto Center.build/Objects-normal/i386/DetailViewController.o
/Users/Adam/Library/Developer/Xcode/DerivedData/Auto_Center-hgjlsqanvyynncgyfzuorxwchqov/Build/Intermediates/Auto Center.build/Debug-iphonesimulator/Auto Center.build/Objects-normal/i386/ModelListViewController.o
ld: 1 duplicate symbol for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
我该如何解决这个问题?
最佳答案
现在,我想从多个文件中读取数组中的数据,因此我只需使用#import "CarArray"
这是从多个位置访问数组数据的错误方法,因为在您多次使用文件的情况下,它会创建多个定义。
共享数组的一种方法是提供带有声明的标头和带有实现的.m文件:
CarArray.h:
extern NSString *cars[5][3];
CarArray.m:
#import "CarArray.h"
NSString *cars[5][3] = {
{@"1A", @"1B", @"1C"},
{@"2A", @"2B", @"2C"},
{@"3A", @"3B", @"3C"},
{@"4A", @"4B", @"4C"},
{@"5A", @"5B", @"5C"}
}
在要使用
#import "CarArray.h"
的文件中使用cars
。另一个选择是制作一个类来包装全局变量,并提供用于访问数组的类方法。
关于ios - xCode: objective-c :重复符号错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27887367/