乙個工具類的單例模式

2021-09-20 00:13:51 字數 959 閱讀 9940

incompatible pointer types assigning to 'id' from 'class'

最後,發現,用單例模式才可以。原因:類方法的self不能充當delegate

下面是stackoverflow裡解決方法,構造單例模式:

utility.h

@inte***ce utility : nsobject + (utility *)sharedutility;

@end

utility.m

@implementation utility

+ (utility *)sharedutility

return theutility;

}- (void)playaudiofromfilename:(nsstring *)name oftype:(nsstring *)type withplayerfinishcallback:(sel)callback onobject:(id)callbackobject

@end

usage

[[utility sharedutility] playaudiofromfilename:@"quack" oftype:"***" withplayerfinishcallback:@selector(donequacking:) onobject:duck];

最後發現,生成單例的方法各不相同,下面是另外一種,至於用那一種更好,或者都一樣?簡主暫時也不知道。。

##static id _sharedinstance = nil;

+(instancetype)sharedinstance

); return _sharedinstance;

}

如果有什麼不正確的地方,歡迎指導!

單例模式(乙個類只能建立乙個例項)

三個步驟 通過new乙個靜態變數 private static single single new single1 構造方法私有化 private single 新建乙個公共獲取物件的方法 靜態 public static single getintance return 這個物件 一共有七中單例模...

保證乙個類僅有乙個例項 單例模式

場景 微軟的windows xp作業系統,ctrl alt del鍵都會彈出乙個windows任務管理器 這時不關閉這個任務管理器 繼續ctrl alt del鍵還是乙個windows任務管理器。鑑於本人水平有限,上面的場景舉例可能不合適,但是很接近乙個基本的設計模式 單例模式。code is ch...

如何設計乙個正確的單例模式類

demo 1 class areturn m instance private 建構函式和變數宣告為private,如果是基類希望被人繼承使用,則宣告為protecta static a m instance a a m instance null 如上demo所示,這是大家習慣的正常建立單例類的方...