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 ];
作用:必須先創建實例對象,相當於迴應消息模式。實例對象調用的方法。 調用:[對象 方法】
可以使用自身屬性