_ContiguousArrayStorage<String>_NativeDictionaryStorageOwner<Int,CGfloat>_NativeDictionaryStorageOwner<String,AnyObject>
这是我使用Swift 3并在使用iOS 10的设备上进行测试的时候.
泄漏仅出现在iOS 10中,而在iOS 9.x上,一切似乎都是正常的.最重要的是,在iOS 10中,UISwitch似乎也没有解除分配.
目前我一直在创建各种各样的解决方法,试图避免使用字典,在某些情况下使用数组,这使得代码真的很烦人.
题:
我是否应该关注这一点,并尝试解决所有这些泄漏或等待并希望它将在未来的更新中修复?如果是这样,是否有任何地方可以检查哪些错误已知?
解决方法 我遇到了同样的问题并花了很多时间挖掘.我发现如果你从Objective-C代码创建Swift对象并且Swift对象具有本机Swift字典属性,你会看到这个泄漏.如果所有代码都是Swift,则不会发生这种情况,更有用的是,如果将原生Swift字典更改为NSDictionary,它将不会泄漏.这也适用于Swift Set和NSSet.我还看到泄漏发生在iOS 10而不是iOS 9上.// LeakySwiftObject.swiftclass LeakySwiftObject: NSObject { let dict = [String: String]() // <- Any native Swift dictionary will reproduce the leak}// ObjectiveCObject.h@class LeakySwiftObject;@interface ObjectiveCObject : NSObject@property (strong) LeakySwiftObject *leaky;@end// ObjectiveCObject.m@implementation ObjectiveCObject- (instancetype)init{ self = [super init]; if (self) { self.leaky = [LeakySwiftObject new]; } return self;}@end// VIEwController.swiftclass VIEwController: UIVIEwController { let testObj = ObjectiveCObject()}
泄漏仪器报告泄漏:_NativeDictionaryStorageImpl<字符串,字符串>_NativeDictionaryStorageOwner<字符串,字符串>
总结以上是内存溢出为你收集整理的Swift 3/iOS 10泄漏全部内容,希望文章能够帮你解决Swift 3/iOS 10泄漏所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)