开发中经常会遇到一种简单的同步问题: 系统在获取资源时,采用了block写法,外部逻辑需要的结果是在block回调中返回的 举个例子: 请求获取通讯录权限的系统弹窗 调用系统方法请求通讯录权限: ABAddressBookRequestAccessWithCompletion(addressBook,^(bool granted,CFErrorRef error)) 外部需要操作通讯录实例addressBook,但这个实例是在block中返回的,如果不加同步判断的话,如果下一步执行了: ABAd…