5
回答
ios编程(第四版)第一章写完出现了一个error,请问该怎么处理?
开发十年,就只剩下这套Java开发体系了   

照着书上把代码打了一遍,出现了一个error。

Linker command failed with exit code 1(use -v to see invoction)

这个好像是使用了第三方库,但是我不知道是啥。也不知道怎么改。。

appdelegate.m的代码:


#import "AppDelegate.h"
#import "ViewController.h"
@interface AppDelegate ()
@end
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{ // Override point for customization after application launch.
self.window =[[UIWindow alloc]initWithFrame: [[UIScreen mainScreen] bounds]]; UIViewController *quizVC=[[UIViewController alloc] init]; self.window.rootViewController=quizVC;
return YES;
 }
@end
viewcontraller.m的代码:


#import "ViewController.h"

@interface ViewController ()

@property (nonatomic) int currentQuestionIndex;

@property (nonatomic) NSArray *questions;
@property (nonatomic) NSArray *answers;


@property (nonatomic,weak) IBOutlet UILabel *questionLabel;
@property (nonatomic,weak) IBOutlet UILabel *answerLabel;

@end

@implementation ViewController

- (instancetype)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self=[super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if(self){
    self.questions=@[@"From what is cognac made?",
                     @"What is 7+7",
                     @"What is the capital of Vermont"];
    self.answers=@[@"Graes",
                  @"14",
                   @"Montpelier"];
    }
    return self;
    
}

-(IBAction)showQuestion:(id)sender
{
    self.currentQuestionIndex++;
    
    if(self.currentQuestionIndex==[self.questions count]){
     self.currentQuestionIndex=0;
    }
    
    NSString *question =self.questions[self.currentQuestionIndex];
    
    self.questionLabel.text=question;
    
    self.answerLabel.text=@"???";
    
}

-(IBAction)showAnswer:(id)sender
{
    NSString *answer=self.answers[self.currentQuestionIndex];
    self.answerLabel.text=answer;
    
    
}

@end

不知道错误在哪,所以把两段代码都发上来了。
举报
学生stu
发帖于3年前 5回/354阅
共有5个答案 最后回答: 3年前
我刚看完这一章,xcode7运行正常,

你要把关键的信息贴出来,不是提示 "use -v to see invoction",把这里的输出贴出来。
不要照抄代码,看完书自己写一遍,你照抄的代码也有问题,就算不报错,视图不会显示出来。


--- 共有 1 条评论 ---
shuoshuoa您好,我的问题就是运行视图不显示,用的是xcode7,storyboard做的视图。这是哪里出了问题呢? 3年前 回复

Liner error 就是.o文件连接生成的错误 说白了 你有头文件的.m文件没有找到 或者是.h出现了的方法 .m没有实现 这是物理错误 你的代码还有逻辑错误: 你的currentindex有可能越界 要嫁一个判断 if(currentIndex >= questtions.count>answers.count?questtions.count:answers.count) currentIndex = 0;

引用来自“开源中国射线科科长”的评论

Liner error 就是.o文件连接生成的错误 说白了 你有头文件的.m文件没有找到 或者是.h出现了的方法 .m没有实现 这是物理错误 你的代码还有逻辑错误: 你的currentindex有可能越界 要嫁一个判断 if(currentIndex >= questtions.count>answers.count?questtions.count:answers.count) currentIndex = 0;

不好意思没看到你加了判断的 我就说嘛 什么书 这么烂 
Ld /Users/yangshu/Library/Developer/Xcode/DerivedData/quiz2-fhedniajcophzjeraotnfcsvhybl/Build/Products/Debug-iphonesimulator/quiz2.app/quiz2 normal x86_64
    cd "/Users/yangshu/Documents/untitled folder/quiz2"
    export IPHONEOS_DEPLOYMENT_TARGET=9.0
    export PATH="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"
    /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch x86_64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator9.0.sdk -L/Users/yangshu/Library/Developer/Xcode/DerivedData/quiz2-fhedniajcophzjeraotnfcsvhybl/Build/Products/Debug-iphonesimulator -F/Users/yangshu/Library/Developer/Xcode/DerivedData/quiz2-fhedniajcophzjeraotnfcsvhybl/Build/Products/Debug-iphonesimulator -filelist /Users/yangshu/Library/Developer/Xcode/DerivedData/quiz2-fhedniajcophzjeraotnfcsvhybl/Build/Intermediates/quiz2.build/Debug-iphonesimulator/quiz2.build/Objects-normal/x86_64/quiz2.LinkFileList -Xlinker -rpath -Xlinker @executable_path/Frameworks -mios-simulator-version-min=9.0 -Xlinker -objc_abi_version -Xlinker 2 -fobjc-arc -fobjc-link-runtime -Xlinker -dependency_info -Xlinker /Users/yangshu/Library/Developer/Xcode/DerivedData/quiz2-fhedniajcophzjeraotnfcsvhybl/Build/Intermediates/quiz2.build/Debug-iphonesimulator/quiz2.build/Objects-normal/x86_64/quiz2_dependency_info.dat -o /Users/yangshu/Library/Developer/Xcode/DerivedData/quiz2-fhedniajcophzjeraotnfcsvhybl/Build/Products/Debug-iphonesimulator/quiz2.app/quiz2

duplicate symbol _OBJC_CLASS_$_ViewController in:
    /Users/yangshu/Library/Developer/Xcode/DerivedData/quiz2-fhedniajcophzjeraotnfcsvhybl/Build/Intermediates/quiz2.build/Debug-iphonesimulator/quiz2.build/Objects-normal/x86_64/ViewController-65A2280ABE9CD49F.o
    /Users/yangshu/Library/Developer/Xcode/DerivedData/quiz2-fhedniajcophzjeraotnfcsvhybl/Build/Intermediates/quiz2.build/Debug-iphonesimulator/quiz2.build/Objects-normal/x86_64/ViewController-4EBF5B40CE993D8D.o
duplicate symbol _OBJC_METACLASS_$_ViewController in:
    /Users/yangshu/Library/Developer/Xcode/DerivedData/quiz2-fhedniajcophzjeraotnfcsvhybl/Build/Intermediates/quiz2.build/Debug-iphonesimulator/quiz2.build/Objects-normal/x86_64/ViewController-65A2280ABE9CD49F.o
    /Users/yangshu/Library/Developer/Xcode/DerivedData/quiz2-fhedniajcophzjeraotnfcsvhybl/Build/Intermediates/quiz2.build/Debug-iphonesimulator/quiz2.build/Objects-normal/x86_64/ViewController-4EBF5B40CE993D8D.o

ld: 2 duplicate symbols for architecture x86_64

这个是详细的错误信息,我也不知道该发哪些。。

顶部