第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

在目標(biāo)C中使用gcd的調(diào)度一次創(chuàng)建單例

在目標(biāo)C中使用gcd的調(diào)度一次創(chuàng)建單例

呼喚遠(yuǎn)方 2019-06-28 15:46:09
在目標(biāo)C中使用gcd的調(diào)度一次創(chuàng)建單例如果您可以針對(duì)IOS 4.0或更高版本使用GCD,它是否是在Object-C(線程安全)中創(chuàng)建單例的最佳方法?+ (instancetype)sharedInstance{     static dispatch_once_t once;     static id sharedInstance;     dispatch_once(&once, ^{         sharedInstance = [[self alloc] init];     });     return sharedInstance;}
查看完整描述

3 回答

?
RISEBY

TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超5個(gè)贊

這是一種完全可以接受和線程安全的方法來(lái)創(chuàng)建類的實(shí)例。從技術(shù)上講,它可能不是“單例”(因?yàn)橹挥幸粋€(gè)這樣的對(duì)象),但是只要您只使用[Foo sharedFoo]方法來(lái)訪問(wèn)對(duì)象,這就足夠了。


查看完整回答
反對(duì) 回復(fù) 2019-06-28
?
偶然的你

TA貢獻(xiàn)1841條經(jīng)驗(yàn) 獲得超3個(gè)贊

實(shí)例類型

instancetype的許多語(yǔ)言擴(kuò)展之一。Objective-C,每個(gè)新版本都會(huì)添加更多內(nèi)容。

知道了,愛(ài)死了。

并以它為例,說(shuō)明如何關(guān)注低層次的細(xì)節(jié)可以讓你洞察到轉(zhuǎn)變目標(biāo)C的強(qiáng)大的新方法。

請(qǐng)參閱此處:instancetype


+ (instancetype)sharedInstance{
    static dispatch_once_t once;
    static id sharedInstance;

    dispatch_once(&once, ^
    {
        sharedInstance = [self new];
    });    
    return sharedInstance;}

+ (Class*)sharedInstance{
    static dispatch_once_t once;
    static Class *sharedInstance;

    dispatch_once(&once, ^
    {
        sharedInstance = [self new];
    });    
    return sharedInstance;}


查看完整回答
反對(duì) 回復(fù) 2019-06-28
?
慕哥9229398

TA貢獻(xiàn)1877條經(jīng)驗(yàn) 獲得超6個(gè)贊

MySingleton.h

@interface MySingleton : NSObject+(instancetype)sharedInstance;+(instancetype)alloc __attribute__((unavailable("alloc not available, call sharedInstance instead")));-(instancetype)init __attribute__((unavailable("init not available, call sharedInstance instead")));+(instancetype)new __attribute__((unavailable("new not available, call sharedInstance instead")));-(instancetype)copy __attribute__((unavailable("copy not available, call sharedInstance instead")));@end

MySingleton.m

@implementation MySingleton+(instancetype)sharedInstance {
    static dispatch_once_t pred;
    static id shared = nil;
    dispatch_once(&pred, ^{
        shared = [[super alloc] initUniqueInstance];
    });
    return shared;}-(instancetype)initUniqueInstance {
    return [super init];}@end


查看完整回答
反對(duì) 回復(fù) 2019-06-28
  • 3 回答
  • 0 關(guān)注
  • 604 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)