什么是对Singleton类进行弱引用的正确方法

时间:2016-07-27 13:00:45

标签: ios objective-c memory-management singleton reference-counting

我遇到了一种使用sharedClass的情况,在其中我使用块获取数据。有一个约定在块内部使用__weak引用来防止保留循环。如何创建一个在整个应用程序中保持活动状态的弱引用?

以下是我所做的代码,

+ (instancetype)sharedPresenter {
    static PostCareListPresenter *presenterInstance;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        presenterInstance = [[PostCareListPresenter alloc] init];
    });
        return presenterInstance;
}

- (void)getPostCareList:(NSDictionary*)pParameterDictionary
                success:(void(^)(NSData*responseData))pSuccessCallback
                failure:(void(^)(NSError* error))pFailureCallback {
    [[GSWebAccessManager sharedManager] invokePostCareList:pParameterDictionary success:^(NSData *responseData) {
        // Here I have to make a call to my private method using weak self.  [weakSelf somePrvateMethod]; 

    } failure:^(NSError *error) {

    }];

}

1 个答案:

答案 0 :(得分:0)

由于单个对象永远不会被破坏,所以你不应该关心它是否被保留