A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 执着的土豆 中级黑马   /  2014-4-25 12:57  /  1160 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 执着的土豆 于 2014-4-25 14:28 编辑
  1. <div class="blockcode"><blockquote>#import <Foundation/Foundation.h>
  2. @interface Dog:NSObject
  3. {
  4. @public
  5.    int DogWeight;
  6. }
  7. -(void) DogEat;
  8. -(void)DogMessage;
  9. @end
  10. @implementation Dog
  11. -(void)DogEat
  12. {
  13.     DogWeight+=1;
  14.     NSLog(@"狗吃完这顿的体重是%d",DogWeight);
  15. }
  16. <font color="#ff0000">-(void)DogMessage</font>
  17. {
  18.     NSLog(@"狗的名字是:旺财,狗的体重是%d",DogWeight);
  19. }
  20. @end
  21. @interface Student:NSObject
  22. {
  23. @public
  24.     Dog *dog;
  25. }
  26. -(void)weigou;
  27. @end
  28. @implementation Student
  29. -(void)weigou
  30. {
  31.     [dog DogEat];
  32. }
  33. @end
  34. int main()
  35. {
  36.     Student *S=[Student new];
  37.     Dog *D=[Dog new];
  38.     S->dog=D;
  39.     //[S->dog DogEat] <font color="#ff0000">//问题1:这样写不报错,但是也不会输出什么,这是为嘛?</font>
  40.     [S weigou];
  41. <font color="#ff0000">    //问题2:在不增加student里面的方法的前提下,能不能调用实例S所指向的DogMessage方法,输出狗的信息?</font>
  42.     return 0;
  43. }
复制代码


问题3:  这个程序敲完,运行,改掉错误之后,编译器会出现以下错误,何解?
MacdeMacBook-Pro:Test mac$ cc 10-OC习题1.m
Undefined symbols for architecture x86_64:
  "_NSLog", referenced from:
      _main in 10-OC习题1-f1cb02.o
  "_OBJC_CLASS_$_NSObject", referenced from:
      _OBJC_CLASS_$_Car in 10-OC习题1-f1cb02.o
  "_OBJC_METACLASS_$_NSObject", referenced from:
      _OBJC_METACLASS_$_Car in 10-OC习题1-f1cb02.o
  "___CFConstantStringClassReference", referenced from:
      CFString in 10-OC习题1-f1cb02.o
  "__objc_empty_cache", referenced from:
      _OBJC_METACLASS_$_Car in 10-OC习题1-f1cb02.o
      _OBJC_CLASS_$_Car in 10-OC习题1-f1cb02.o
  "_objc_msgSend", referenced from:
      _main in 10-OC习题1-f1cb02.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
还希望各位高手给予解惑,感激不尽。


评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

3 个回复

倒序浏览
马凯文 发表于 2014-4-25 13:21
问题一:我什么都没有动,正常运行,见图
问题二:Dog类是Student的一个属性,通过Student可以访问Dog的所 ...

将相应的出现错误的.m文件,加入到build phases中的compile sources中就可以,我还是没找到build phases在哪里,网站上那个图片我都不知道他开的什么软件或者哪个路径也没有写。现在我发现不光是那个文件运行出现那个问题,所有的.m文件运行都出现那样的结果。。     还希望说的详细一点。现在我连编译都不行了。      
回复 使用道具 举报
马凯文 发表于 2014-4-25 13:21
问题一:我什么都没有动,正常运行,见图
问题二:Dog类是Student的一个属性,通过Student可以访问Dog的所 ...

解决了, 昨天晚上学的太晚了,可能代码写错了。  按照你写的可以调出DogMessage方法。  第三个问题,我解决了,找了另一个帖子改了下。 非常感谢!  
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马