iOS 委托(delegate)和单例模式

标签 ios singleton delegation cocoa-design-patterns

我正在开发一个 iOS 应用程序。我使用的设计模式单例和委托(delegate)模式。我在 dealloc 方法中没有委托(delegate)对象。如果用户重新打开此屏幕并设置为委托(delegate)对象自身。但我看到委托(delegate)对象总是为零。如何重新分配给 self 来委托(delegate)对象

最佳答案

由于您的问题不详细, 我想给你建议,首先仔细检查你的单例代码,然后 检查您的委托(delegate)是否始终以正确的方式按照您的逻辑正确设置。
我知道这个答案太宽泛和笼统,但是,这是没有帮助的。

作为引用,下面的代码是 ARC 下 Objective-C 单例的基本结构。(对于 swift 版本,请检查上面的答案。)

你的Singleton.h

@interface YourSingleton : NSObject

+ (YourSingleton*)sharedInstance;

@end

你的Singleton.m

#import "YourSingleton.h"

@implementation YourSingleton

#pragma mark - singleton method

+ (YourSingleton*)sharedInstance
{
    static dispatch_once_t predicate = 0;
    __strong static id sharedObject = nil;
    dispatch_once(&predicate, ^{
        sharedObject = [[self alloc] init];
    });
    return sharedObject;
}

@end

关于iOS 委托(delegate)和单例模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21582458/

相关文章:

ios - 启动 UITableView 滚动到底部

java - 从 Dagger 2 开始 - 类不注入(inject)

c++ - 如何在静态单例类中以编程方式从 exec 方法返回

java - Guice如何将单例和非单例注入(inject)多线程

ASP.Net Web 应用程序尝试使用模拟和委托(delegate)连接到文件服务器

ios - 如何匹配静态 UITableView 中的默认 UITableViewCell X 位置/前导约束?

ios - 数据模型结构频繁变化 : best way to work

ios - UIWebView 水平弹跳不起作用

ios - 呈现新 View Controller 时销毁以前的 View Controller

python - 在 Python 中自定义不可变类型