iOS的类方法和实例方法区别与使用 + -

4 篇文章 0 订阅

1.什么是类方法?
在OC类定义方法时以 + 开头的方法,又称为静态方法。如:+ (viod)方法名{ }.

作用:不用实例话就可以直接调用的方法,一般是有返回值的,返回对应的实例(数组、字符串等),还有可能就是本身类的实例对象。常用于一些common或者UtiKit等公共方法类中。如对NSStringUIColorExtension时。 调用方式:[类名 方法名】

限制: 不能使用自身属性 ,想要使用的类方法就要在定义类的.h文件中声明哟,否则不能直接调用,!

示例如下:



// 默认alpha位1
+ (UIColor *)colorWithHexString:(NSString *)color;

//从十六进制字符串获取颜色,
//color:支持@“#123456”、 @“0X123456”、 @“123456”三种格式
+ (UIColor *)colorWithHexString:(NSString *)color alpha:(CGFloat)alpha;

+ (UIImage *)imageWithOriRenderName:(NSString *)imageName;

使用时

[UIColor colorWithHexString:@"0X123456"];

2.什么是实例方法?
在OC定义中以 - 开头的方法。如: - (viod)方法名{ } 此方法较为常见 诸如我们写的 helper ,

@protocol BoutiqueCourseManagerDelegate <NSObject>
// 由于这里没有任何修饰词所以是默认的代理方法,切记默认的代理方法,如果遵守了协议那就必须实现

- (void)setCourseList:(NSMutableArray *)list;

@end

@interface BoutiqueCourseManager : NSObject
@property(nonatomic,weak)id<BoutiqueCourseManagerDelegate> delegate;
- (void)getCourseByNetwork:(NSInteger)index;
- (void)getCourseByKeyAndPage:(NSInteger)index Key:(NSString *) key;
@end

调用时

//实例化
- (BoutiqueCourseManager *)manager{
    if(!_manager){
        _manager = [[BoutiqueCourseManager alloc] init];
        _manager.delegate = self;
    }
    return  _manager;
}

   [self.manager getCourseByNetwork:page ];

作用:必须先创建实例对象,相当于回应消息模式。实例对象调用的方法。 调用:[对象 方法】

可以使用自身属性

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值