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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Freedam 中级黑马   /  2014-6-4 23:57  /  906 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 Freedam 于 2014-6-10 12:07 编辑

代码如下:
apple.h
  1. #import <Foundation/Foundation.h>

  2. @interface Apple : NSObject

  3. @property int num;
  4. @property int size;

  5. - (void)test;
  6. - (int)appleSize;

  7. @end
复制代码


apple.m
  1. #import "Apple.h"

  2. @implementation Apple

  3. - (void)test
  4. {
  5.     NSLog(@"apple");
  6. }

  7. - (int)appleSize
  8. {
  9.     return _size;
  10. }

  11. @end
复制代码


plum.h
  1. #import <Foundation/Foundation.h>

  2. @interface Plum : NSObject

  3. @property int num;
  4. @property int size;

  5. - (void)test;
  6. - (int)plumSize;

  7. @end
复制代码


plum.m
  1. #import "Plum.h"

  2. @implementation Plum

  3. - (void)test
  4. {
  5.     NSLog(@"plum");
  6. }

  7. - (int)plumSize
  8. {
  9.     return _size;
  10. }

  11. @end
复制代码


main.m
  1. #import <Foundation/Foundation.h>
  2. #import "Apple.h"
  3. #import "Plum.h"

  4. int main()
  5. {
  6.     Apple *a = [Apple new];
  7.     a.num = 5;
  8.     NSLog(@"num = %d",a.num);
  9.    
  10.     Plum *p = [Plum new];
  11.     p.num = 8;
  12.     NSLog(@"num = %d",p.num);
  13.    
  14.     id data=a;
  15.     [data test];
  16.     int size = [data appleSize];
  17.     NSLog(@"size = %d",[data appleSize]);
  18.    
  19.     data = p;
  20.     [data test];
  21.     size = [data plumSize];
  22.     NSLog(@"size = %d",size);
  23.    
  24.     return 0;
  25. }
复制代码
代码运行时报错如下:

问一下这样得怎样修改,为什么id类型转化成了别的类型。为什么可以准确调用appleSize方法,就是不能调用test方法

评分

参与人数 1技术分 +1 收起 理由
傘が咲く + 1

查看全部评分

1 个回复

倒序浏览
没人啊,自己顶一个吧
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马