黑马程序员技术交流社区

标题: 求解答 OC中关于对象做为方法参数传递 [打印本页]

作者: 麟子    时间: 2015-9-2 20:24
标题: 求解答 OC中关于对象做为方法参数传递
本帖最后由 麟子 于 2015-9-2 21:15 编辑

  1. #import <Foundation/Foundation.h>
  2. //狗的类的声明
  3. #pragma mark 狗类的声明
  4. @interface Dog : NSObject
  5. {
  6.          @public
  7.          int _speed;//速度
  8.          int _weight;//体重
  9. }
  10. -(void)eat:(NSString *)foodName;
  11. -(void)run;
  12. @end
  13. //狗类的实现
  14. @implementation Dog
  15. -(void)eat:(NSString *)foodName{
  16.          _weight++;
  17.         NSLog(@"吃了一块%@,体重是:%d",_weight);
  18. }
  19. -(void)run{
  20.         NSLog(@"以每秒%d的速度疯狂的奔跑",_speed);
  21. }
  22. @end
  23. //人类的声明
  24. @interface Person : NSObject
  25. {
  26.          @public
  27.          NSString *_name;//姓名
  28.          Dog *_dog;//狗//狗类对象作为类中的属性(成员)来使用
  29. }
  30. -(void)dogEat;
  31. -(void)walkDog;
  32. @end
  33. //人类的实现
  34. @implementation Person
  35. //喂狗
  36. -(void)dogEat{
  37.             [_dog eat:@"大馒头"];
  38. }
  39. //遛狗
  40. -(void)walkDog{
  41.             [_dog run];
  42. }
  43. @end
  44. int main(int argc, const char * argv[]) {
  45.     @autoreleasepool {
  46.           Person *per=[Person new];
  47.           //实例化一个狗
  48.           per->_dog->_weight=500;   
  49.           //喂狗
  50.           [per dogEat];
  51.           //遛狗
  52.           [per walkDog];
  53.           NSLog(@"哈哈哈");
  54. }
  55.          return 0;
  56. }
复制代码
在程序执行过程中会执行不下去,想知道是什么问题,以及解决办法


作者: 1wang2huan    时间: 2015-9-2 20:32
你这个是java吧,发错地方了把
作者: weicongcing    时间: 2015-9-2 21:13
呵呵~~~~~~




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2