這兒為了驗證xcode上類簇nsnumber實現過程設計了乙個簡化版類簇lonumber
#import
@inte***ce
lonumber :
nsobject
@property
(readonly
)int
intvalue;
//獲取物件對應的
int資料
@property
(readonly
)bool
boolvalue;
//獲取物件對應的
bool
資料//
初始化- (
instancetype
)initwithint:(
int)value;
- (instancetype
)initwithbool:(
bool
)value;
//便利構造器
+ (instancetype
)numberwithint:(
int)value;
+ (instancetype
)numberwithbool:(
bool
)value;
@end
#import
"lonumber.h"
//私有子類
__locfnumber
@inte***ce
__locfnumber :
lonumber
@end
@implementation
__locfnumber
//初始化
- (instancetype
)initwithint:(
int)value
return
self;}
//intvalue
方法- (
int)intvalue
- (nsstring
*)description
@end
//私有子類
__locfboolean
@inte***ce
__locfboolean :
lonumber
@end
@implementation
__locfboolean
- (instancetype
)initwithbool:(
bool
)value
return
self;}
- (bool
)boolvalue
-(nsstring
*)description
@end
//私有子類
loplaceholdernumber
@inte***ce
loplaceholdernumber :
lonumber
@end
@implementation
loplaceholdernumber
- (instancetype
)init
- (instancetype
)initwithint:(
int)value
- (instancetype
)initwithbool:(
bool
)value
@end
@implementation
lonumber
//抽象類
:不能建立的物件
//通過重寫
alloc方法,
在alloc
開闢空間時指向其私有子類
loplaceholdernumber型別,
通過此子類開闢空間
+ (instancetype
)alloc
//宣告靜態的
loplaceholdernumber
型別的指標
,保證只做一次初始化
static
loplaceholdernumber
*number =
nil;
if(!number)
return
number;}//
初始化//- (instancetype)init
- (instancetype
)initwithint:(
int)value
- (instancetype
)initwithbool:(
bool
)value
//便利構造器
+ (instancetype
)numberwithint:(
int)value
+ (instancetype
)numberwithbool:(
bool
)value
@end
#import
#import
"lonumber.h"
intmain(
intargc,
const
char
* argv)
OC中的類簇
類簇 class cluster 是一種設計模式,在foundation framework中被廣泛使用,舉個簡單的例子 nsarray arr nsarray arraywithobjects foo bar nil nslog arr class arr class output nsarray...
Kmeans初始類簇的選取?
答 k means 演算法選擇初始seeds的基本思想就是 初始的聚類中心之間的相互距離要盡可能的遠。1.從輸入的資料點集合中隨機選擇乙個點作為第乙個聚類中心 2.對於資料集中的每乙個點x,計算它與最近聚類中心 指已選擇的聚類中心 的距離d x 3.選擇乙個新的資料點作為新的聚類中心,選擇的原則是 ...
從NSArray看類簇
class clusters 類簇 是抽象工廠模式在ios下的一種實現,眾多常用類,如nsstring,nsarray,nsdictionary,nsnumber都運作在這一模式下,它是介面簡單性和擴充套件性的權衡體現,在我們完全不知情的情況下,偷偷隱藏了很多具體的實現類,只暴露出簡單的介面。熟悉這...