在XCod8执行的话,界面1里面就算置空(设置为nil),在界面2里也会执行block的回调!
但是XCode9:
在界面1里:myDev.connectBlock = nil;
第二个界面的block,不会回调:
//连接状态
self.dev.connectBlock = ^(NSInteger state, NSString *connection) {
}
你的block先看是不是设置成nil,是不是又修改了,所以被回调
if (self.callBackBlock) {
self.callBackBlock(_companyID);
}
一般在执行Block 的回调时都会判断当前Block 是否存在,如果你同样也是添加了这个方法在Xcode 8 里还会照样执行的话,建议参照一楼大哥的回答
是不是在你设置成 nil 之后又在别的地方修改了,所以当前Block 不为nil 了。没有安装Xcode 8 不能做具体的调试。