Objective c 是否会有保留周期?
下面是一些抽象代码。有基类“BaseClass”和子类“MyClass”Objective c 是否会有保留周期?,objective-c,Objective C,下面是一些抽象代码。有基类“BaseClass”和子类“MyClass” MyClass初始化方法中是否有保留周期?是;这是一个循环 您可以通过将代码粘贴到一个简单的项目中,然后使用Xcode 8的内存图调试器进行检查 复制/粘贴此可编译版本的代码,然后生成并运行。它将永远运行,什么也不做。单击小对象图调试器图标(三个带线的圆圈),它将显示从sub实例通过块返回到自身的强引用 @interface Base:NSObject @property (nonatomic, copy) dispatc
MyClass初始化方法中是否有保留周期?是;这是一个循环 您可以通过将代码粘贴到一个简单的项目中,然后使用Xcode 8的内存图调试器进行检查 复制/粘贴此可编译版本的代码,然后生成并运行。它将永远运行,什么也不做。单击小对象图调试器图标(三个带线的圆圈),它将显示从sub实例通过块返回到自身的强引用
@interface Base:NSObject
@property (nonatomic, copy) dispatch_block_t block;
@end
@interface Sub:Base
@property (strong, nonatomic) NSString *myString;
@end
int main(int argc, const char * argv[]) {
@autoreleasepool {
Sub *s = [[Sub alloc] init];
}
dispatch_main();
return 0;
}
@implementation Base
- initBaseClassWithBlock:(dispatch_block_t)block
{
self = [super init];
if (self) {
self.block = block;
}
return self;
}
@end
@implementation Sub
- (instancetype)init {
if (self = [super initBaseClassWithBlock:^{
NSLog(@"%@", self.myString);
}]) {
;
}
return self;
}
@end
@interface Base:NSObject
@property (nonatomic, copy) dispatch_block_t block;
@end
@interface Sub:Base
@property (strong, nonatomic) NSString *myString;
@end
int main(int argc, const char * argv[]) {
@autoreleasepool {
Sub *s = [[Sub alloc] init];
}
dispatch_main();
return 0;
}
@implementation Base
- initBaseClassWithBlock:(dispatch_block_t)block
{
self = [super init];
if (self) {
self.block = block;
}
return self;
}
@end
@implementation Sub
- (instancetype)init {
if (self = [super initBaseClassWithBlock:^{
NSLog(@"%@", self.myString);
}]) {
;
}
return self;
}
@end