看板 MacDev 關於我們 聯絡資訊
沒有class var但是有static class 如果你去google通常會跟你說用dispatch_once 以下提供另一種obj-c的方案 首先新增一個ClassA 在ClassA.m裡面實作 static ClassA *a; + (ClassA *)sharedInstance { if (!a) { a = [[self alloc] init]; } return a; } 在ClassA.h裡面放下 + (ClassA *)sharedInstance; 之後只要使用[ClassA sharedInstance]就可以了 之後在.h裡面宣告 @property (nonatomic, assign) NSInteger *x; 就可以用[ClassA sharedInstance].x取得類似class var的東西 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 211.75.221.136 ※ 文章網址: https://www.ptt.cc/bbs/MacDev/M.1438738808.A.BBC.html
cryinglove: 08/05 16:56
darktt: 如果要在多執行緒中使用還是建議是用dispatch_once 08/05 17:11
darktt: 另外是有最不安全的使用方式就是在h檔的interface定義變數 08/05 17:12
darktt: 在定義的{}裡面加上@public,這樣子它下面的變數就會公開 08/05 17:13
darktt: 這樣子就可以使用ClassA *a = [ClassA new]; 08/05 17:14
darktt: NSInteger x = a->x;取值 08/05 17:15
uranusjr: 這個一定要用 dispatch_once 的, 你這樣寫根本是 race 08/05 18:37
uranusjr: condition waiting to happen... 08/05 18:38
howdiun: PO文長知識了 感謝版友開導 08/06 09:15