1.什么是类方法?
在OC类定义方法时以 + 开头的方法,又称为静态方法。如:+ (viod)方法名{ }.
作用:不用实例话就可以直接调用的方法,一般是有返回值的,返回对应的实例(数组、字符串等),还有可能就是本身类的实例对象。常用于一些common或者UtiKit等公共方法类中。如对NSString ,UIColor 等 Extension时。 调用方式:[类名 方法名】
限制: 不能使用自身属性 ,想要使用的类方法就要在定义类的.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 ];
作用:必须先创建实例对象,相当于回应消息模式。实例对象调用的方法。 调用:[对象 方法】
可以使用自身属性