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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

各位大侠门请教OC对象方法前加“+”号和”-“号的区别?

1 个回复

倒序浏览
  1. //
  2. // main.m
  3. // TimeAfterTime
  4. //
  5. // Created by current on 9/18/15.
  6. // Copyright :copyright: 2015 current. All rights reserved.
  7. //

  8. #import <Foundation/Foundation.h>

  9. @interface Foo: NSObject
  10. {
  11. NSInteger uid;
  12. }
  13. -(void) init: (NSInteger) _id;
  14. -(void) Bar;
  15. +(void) Bar;
  16. @end

  17. @implementation Foo

  18. -(void) init: (NSInteger)_id
  19. {
  20. uid = _id;
  21. }

  22. -(void) Bar
  23. {
  24. NSLog(@"My id is %ld", uid);
  25. }

  26. +(void) Bar
  27. {
  28. NSLog(@"Bar from Foo, No uid.");
  29. }
  30. @end

  31. int main(int argc, const char * argv[]) {
  32. @autoreleasepool {
  33. Foo *p = [[Foo alloc] init];
  34. [p Bar];
  35. [Foo Bar];
  36. }
  37. return 0;
  38. }
复制代码
+代表类方法,相当于C++里static
-是实例方法,在一个类被实例化后才可以被调用
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马