2014-09-21 77 views
1

我开始学习使用Xcode 6的Objective C,所以我对此很陌生。我遵循Web上的一些教程并尝试一些示例。我使用的是Mac OS X 10.9。我没有得到像这样的错误。我已经尝试了很多客观的C代码。这里我附上了我的编码。错误Xcode 6上的'架构x86_64的未定义符号'对于Objective C

的main.m

#import <Foundation/Foundation.h> 
#import "CarUtilities.h" 

int main(int argc, const char * argv[]) { 
@autoreleasepool { 

NSDictionary *makesAndModels = @{ 
@"Ford":@[@"Explorer",@"F-150"], 
@"Honda":@[@"Accord",@"Civic",@"Pilot"], 
@"Nissan":@[@"370Z",@"Altima",@"Versa"], 
@"Porsche":@[@"911 Trubo",@"Boxter",@"Cayman S"] 

}; 

NSString *randomCar = CUGetRandomMakeAndModel(makesAndModels); 
NSLog(@"Selected a %@",randomCar); 
} 
return 0; 
} 


//CarUtilities.m 

#进口 #进口 “CarUtilities.h”

//private function declaration 

static id getRandomItemFromArray(NSArray *anArray); 

//公共funtion实施

NSString *CUGetRandomMake(NSArray *makes){ 

return getRandomItemFromArray(makes); 
} 

NSString *CUGetRandomModel(NSArray *models){ 
return getRandomItemFromArray(models); 
} 

NSString *CUGetRandomMakeAndModel(NSDictionary *makesAndModels){ 

NSArray *makes = [makesAndModels allKeys]; 
NSString *randomMake = CUGetRandomeMake(makes); 
NSArray *models = makesAndModels[randomMake]; 
NSString *randomModel = CUGetRandomeModel(models); 

return [randomMake stringByAppendingFormat:@" %@",randomModel]; 

} 

//private function implementation 

static id getRandomItemFromArray(NSArray *anArry){ 

int maximum = (int) [anArry count]; 
int randomIndex = arc4random_uniform(maximum); 

return anArry[randomIndex]; 

} 
CarUtilities.h 

#import <Foundation/Foundation.h> 

NSString *CUGetRandomeMake(NSArray *makes); 
NSString *CUGetRandomeModel(NSArray *models); 
NSString *CUGetRandomMakeAndModel(NSDictionary *makesAndModels); 

当我尝试运行此代码我有以下错误。对于架构x86_64的

Ld /Users/samudrjkumara/Library/Developer/Xcode/DerivedData/CarUtilities-govahlvyjxsayfaxlqircwemwocg/Build/Products/Debug/CarUtilities normal x86_64 cd /ObjectiveC/CarUtilities export MACOSX_DEPLOYMENT_TARGET=10.9 /Applications/Xcode6-Beta6.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch x86_64 -isysroot /Applications/Xcode6-Beta6.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk -L/Users/samudrjkumara/Library/Developer/Xcode/DerivedData/CarUtilities-govahlvyjxsayfaxlqircwemwocg/Build/Products/Debug -F/Users/samudrjkumara/Library/Developer/Xcode/DerivedData/CarUtilities-govahlvyjxsayfaxlqircwemwocg/Build/Products/Debug -filelist /Users/samudrjkumara/Library/Developer/Xcode/DerivedData/CarUtilities-govahlvyjxsayfaxlqircwemwocg/Build/Intermediates/CarUtilities.build/Debug/CarUtilities.build/Objects-normal/x86_64/CarUtilities.LinkFileList -mmacosx-version-min=10.9 -fobjc-arc -fobjc-link-runtime -Xlinker -dependency_info -Xlinker /Users/samudrjkumara/Library/Developer/Xcode/DerivedData/CarUtilities-govahlvyjxsayfaxlqircwemwocg/Build/Intermediates/CarUtilities.build/Debug/CarUtilities.build/Objects-normal/x86_64/CarUtilities_dependency_info.dat -o /Users/samudrjkumara/Library/Developer/Xcode/DerivedData/CarUtilities-govahlvyjxsayfaxlqircwemwocg/Build/Products/Debug/CarUtilities

未定义符号: “_CUGetRandomeMake”,从引用:在CarUtilities.o “_CUGetRandomeModel” _CUGetRandomMakeAndModel,从引用:在CarUtilities.o`` LD _CUGetRandomMakeAndModel:符号(S)未找到架构x86_64 clang:错误:链接器命令失败,退出代码1(使用-v查看调用)

我在哪里出错了。请为此需要帮助,因为我是Xcode和Objective C的新手。

回答

2

我认为问题与项目构建设置有关。

在你的目标构建设置做检查,如果在架构子视图:

"Architecture" includes all supported architectures. (including arm64) 

"Build active architecture only": NO. 

没有足够的回购添加图片。所以请在这个帖子查看图像:

Xcode 5 and iOS 7: Architecture and Valid architectures

+0

非常感谢您的回复。 – samudra 2014-09-21 18:29:53

0

错别字:

NSString *CUGetRandomMake(NSArray *makes){ 
    return getRandomItemFromArray(makes); 
} 
... 

NSString *randomMake = CUGetRandomeMake(makes); 
//        ^

同为CUGetRandomModel()

+0

非常感谢。它解决了错误。 – samudra 2014-09-21 18:29:12

相关问题