求问老师 对于3-9的编程练习 为什么这样的代码输出不了结果? 会报错

求问老师 对于3-9的编程练习 为什么这样的代码输出不了结果? 会报错

  • ----main.m----------

#import <Foundation/Foundation.h>

void eat(){

    NSLog(@"饿了要吃饭!");

    }

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

    @autoreleasepool {

    eat();    

    Person *person1 = [[Person alloc]init];

    [person1 sleep];

    NSLog(@"%@",person1);    

    }

    return 0;

}

  • --------Person.h-------------------------

  • #import <Foundation/Foundation.h>

  • @interface Person : NSObject

  • -(void)sleep;

  • @end

-----------Person.m----------------------

#import "Person.h"

@implementation Person

-(void)sleep

{

  NSLog(@"困了需要睡觉!");  

}

@end


错误如下:

main.m:11:5: error: use of undeclared identifier 'Person'
    Person *person1 = [[Person alloc]init];
    ^
main.m:11:13: error: use of undeclared identifier 'person1'
    Person *person1 = [[Person alloc]init];
            ^
main.m:11:25: error: use of undeclared identifier 'Person'
    Person *person1 = [[Person alloc]init];
                        ^
main.m:12:6: error: use of undeclared identifier 'person1'; did you mean 'perror'?
    [person1 sleep];
     ^~~~~~~
     perror
/usr/include/stdio.h:848:13: note: 'perror' declared here
extern void perror (const char *__s);
            ^
main.m:12:6: error: bad receiver type 'void (*)(const char *)'
    [person1 sleep];
     ^~~~~~~
main.m:14:17: error: use of undeclared identifier 'person1'; did you mean 'perror'?
    NSLog(@"%@",person1);    
                ^~~~~~~
                perror
/usr/include/stdio.h:848:13: note: 'perror' declared here
extern void perror (const char *__s);
            ^
main.m:14:17: warning: format specifies type 'id' but the argument has type 'void (*)(const char *)' [-Wformat]
    NSLog(@"%@",person1);    
            ~~  ^~~~~~~
1 warning and 6 errors generated.

问题: 为什么这样的代码输出不了结果?   在哪里出错了?    一直看不出来       求解答      谢谢

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
提问者 Lollipop72 2018-01-25 10:33:07

如果代码有什么地方需要改进也可以说下哈hhh


  • 代码写得没有问题哦,函数的实现,以及方法的声明及实现都完成了。错误的原因就是因为没引入头文件。后面在看到报错信息的时候,像这种都在说Person的问题的时候,就可以首先想到头文件的引入咯。很棒,能够自己发现问题,继续努力,加油~
    2018-01-25 13:45:55
提问者 Lollipop72 2018-01-25 10:28:41

已经成功运行了。

发现自己在main.m没有引入Person.h文件而已,问题已经解决。老师看到的话不用回答了。

谢谢!


问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
iOS入门:基础语法与常用控件
  • 参与学习       1337    人
  • 提交作业       712    份
  • 解答问题       1878    个

很多人都在疑问没有基础该怎么学习iOS开发?不用担心,本路径采用游戏关卡式的教学模式,并且以经典OC与最新Swift双重结合的教学内容,帮助大家快速掌握两种iOS开发语言基础,去掉“零”标签。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师