iOS委托和Singleton模式

时间:2014-02-05 16:15:40

标签: ios singleton delegation cocoa-design-patterns

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

3 个答案:

答案 0 :(得分:2)

由于您的问题不详细, 我想建议你先仔细检查你的单例代码 检查你的代表是否与你的逻辑一起以正确的方式正确设置 我知道这是一个过于宽泛和普遍的答案,但是,它无法帮助。

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

YourSingleton.h

@interface YourSingleton : NSObject

+ (YourSingleton*)sharedInstance;

@end

YourSingleton.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

答案 1 :(得分:0)

在单件类方法中使用它

//Strict impelmentation of singleton with ARC.
//Object is created only once in the System.
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
    if(myObject==nil){
        myObject= [[myClass alloc]init];
    }
});

return sharedEffcoreObject;

答案 2 :(得分:0)

您应该更简单地提出问题。您可以找到有关大多数设计模式的信息,以及如何在ios here上实现它们。 希望这会有所帮助。