Tag: 单例

修复ARC中潜在的内存泄漏

以下单例类(SharedManager)辅助方法可能会导致保留周期。 在静态分析器中获取警告:“在线分配的对象的潜在泄漏”我该如何解决? 我确实尝试了让伊娃使用__weak,但是当我分析时仍然会出现警告。 NSString *__weak uuid = (__bridge NSString *)CFUUIDCreateString(kCFAllocatorDefault, uuidObject); 谢谢 像这样在课堂上被召唤: myUUID = [SharedManager generateUUID]; + (NSString *)generateUUID { CFUUIDRef uuidObject = CFUUIDCreate(kCFAllocatorDefault); NSString *uuid = (__bridge NSString *)CFUUIDCreateString(kCFAllocatorDefault, uuidObject); CFRelease(uuidObject); return uuid; }

iOS单身人士和内存pipe理

我确定我缺less对iOS内存pipe理的一些基本理解,尽pipe有很多的阅读和search,但我仍然没有得到它。 我在我的应用程序中使用了一个单身人士,其中包含当前login用户的信息,从多个视图控制器访问的信息等。它具有多个在应用程序中获取和设置的ivars。 他们在.h文件中声明和有属性如下所示: NSString *myString; 并保留如下: @property (non atomic, retain) NSString *myString; 并在实现中进行了合成。 我得到并设置他们的价值在这样的单身人士的方法: myString = @"value"; 和 methodLocalString = myString; 在其他地方,我包括单身 – 称为CurrentUser – 我导入它: #import "CurrentUser.h" 在单身人士之外,我得到了这样的设置: [CurrentUser sharedCurrentUser].myString = @"Bob"; 和 myOutsideString = [CurrentUser sharedCurrentUser].myString; 大多数情况下,这个工作很好,价值观从适当的环境中适当地持续下去。 麻烦的是,有时当我得到他们的方式,我发现他们已经被释放(崩溃的应用程序),NSZombieEnabled谢天谢地告诉我。 我不明白的是他会怎样发生。 我以为单身人士从来没有被释放,因此保留单身人士的属性永远不会被释放。 我会注意到这个问题似乎更像NSDate这样的非真实对象属性,以及不能保留的int和BOOL等绝对不属于对象的属性,而且它也发生在对象属性上。 我在这里不知道什么? 并感谢您的耐心。

如何在Swift 2.0(iOS)的单例类中创build全局可访问的结构数据?

我很新的iOS编程和迅速。 我正在尝试创build一个单例类来存储我的全局数据。 我的全局数据是一个结构和这个结构的数组。 我想只有这个类的一个实例,因此是一个单例类。 全局数据应该可以被所有ViewController访问和编辑。 我一直在四处寻找,除了最后一部分之外,我几乎已经想通了。 这里是单身人士课程: import Foundations class Global { struct Info { var firstname:String! var lastname:String! var status:String! init (firstname:String, lastname:String, status:String) { self.firstname=firstname self.lastname=lastname self.status=status } } var testString: String="Test" //for debugging var member:[Info]=[] class var SharedGlobal:Global { struct Static {static let instance = Global()} return Static.instance } } 现在我想从一些viewControllers访问这个单例类的全局variables。 当我在xcode中input: […]

如何正确实现ARC兼容和`alloc init`安全的Singleton类?

我看到线程安全的版本 +(MyClass *)singleton { static dispatch_once_t pred; static MyClass *shared = nil; dispatch_once(&pred, ^{ shared = [[MyClass alloc] init]; }); return shared; } 但是如果有人只是调用[MyClass alloc] init]会发生什么? 如何使其返回与+(MyClass *)singleton方法相同的实例?

在swift中创build一个viewcontroller的单例

我知道如何快速创build单例类。 创build单例类的最简单的方法如下: class Singleton { static let sharedInstance = Singleton() } 但是我不需要任何一个普通class级的单身人士。 我需要为viewcontroller类创build单例。 所以我使用这个代码创build单身人士 class AViewController:UIViewController { static let sharedInstance = AViewController() required init?(coder aDecoder: NSCoder) { super.init(coder: aDecoder) } } 它给我错误附近AViewController() Missing argument for parameter 'coder' in call 看起来像它希望我初始化与init(coder: NSCoder) 。 但是,我应该通过coder通过什么参数或值?

静态函数和单例类在swift中的区别

我想创build一个类,其中将在整个应用程序将使用的所有实用工具方法。 问题:1 创build一个单例类并保留所有必要的方法是很好的,或者我应该创build一个所有函数都应该是静态的类。 问题:2 两者之间的主要区别是什么? 问题:3 它将如何影响iOS的性能?