Chinaunix首页 | 论坛 | 博客
  • 博客访问: 868742
  • 博文数量: 322
  • 博客积分: 6688
  • 博客等级: 准将
  • 技术积分: 3626
  • 用 户 组: 普通用户
  • 注册时间: 2010-09-19 11:26
文章分类

全部博文(322)

文章存档

2013年(5)

2012年(66)

2011年(87)

2010年(164)

分类: iOS平台

2013-11-05 16:47:42

1、instancetype
  1. instancetype不可以跟id那样,作为参数进行传递,只可以作为方法的返回值
  2. 当一个类返回相同类的实例时可以使用instancetype
2、id
  1. 不在描述
3、代码反馈
    Person.h

点击(此处)折叠或打开

  1. #import <Foundation/Foundation.h>

  2. @interface Person : NSObject

  3. + (instancetype)personInstancetype;
  4. + (id)personID;

  5. - (void)does;
  6. @end
    Person.m

点击(此处)折叠或打开

  1. #import "Person.h"

  2. @implementation Person

  3. + (instancetype)personInstancetype
  4. {
  5.     return [[self alloc] init];
  6. }
  7. + (id)personID
  8. {
  9.     return [[self alloc] init];
  10. }
  11. - (void)does
  12. {
  13.     NSLog(@"person does");
  14. }
  15. @end
    
    Man.h

点击(此处)折叠或打开

  1. #import "Person.h"

  2. @interface Man : Person

  3. - (void)doIt;
  4. @end

    Man.m

点击(此处)折叠或打开

  1. #import "Man.h"

  2. @implementation Man

  3. - (void)doIt
  4. {
  5.     NSLog(@"man do it ");
  6. }
  7. @end

    调用执行过程如下:
    main.m

点击(此处)折叠或打开

  1. #import <UIKit/UIKit.h>

  2. #import "AppDelegate.h"
  3. #import "Person.h"
  4. #import "Man.h"

  5. int main(int argc, char *argv[])
  6. {
  7.     @autoreleasepool {
  8.         [[Person personID] does];
  9.         [[Person personID] doIt];
  10.         
  11.         [[Person personInstancetype] doIt];
  12.         [[Person personInstancetype] does];
  13.         
  14.         [[Man personInstancetype] doIt];
  15.         [[Man personInstancetype] does];
  16.         
  17.         [[Man personID] does];
  18.         [[Man personID] doIt];
  19.         
  20.         return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
  21.     }
  22. }
      在13行会有编译器提示,如下:

点击(此处)折叠或打开

  1. /Users/...../Demo/Demo/main.m:21:38: No visible @interface for 'Person' declares the selector 'doIt'





阅读(6516) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~