Objective c 调用块内的块目标c
我希望在完成块A时调用块B(Objective c 调用块内的块目标c,objective-c,objective-c-blocks,Objective C,Objective C Blocks,我希望在完成块A时调用块B(isInsertSuccess返回YES)。有人能帮我使用下面的代码吗?多谢各位 A区 [userServiceInstance insertDataOnSuccess:^ { if (![userServiceInstance isInsertSuccess]) { NSLog(@“Insert is successful”); } }]; B区 [PHPhotoLibrary requestAuthoriza
isInsertSuccess
返回YES
)。有人能帮我使用下面的代码吗?多谢各位
A区
[userServiceInstance insertDataOnSuccess:^
{
if (![userServiceInstance isInsertSuccess]) {
NSLog(@“Insert is successful”);
}
}];
B区
[PHPhotoLibrary requestAuthorization:^(PHAuthorizationStatus status){
NSLog(@“This is the status, %ld”, status);
}];
你可以做:
[userServiceInstance insertDataOnSuccess:^{
if (![userServiceInstance isInsertSuccess]) {
NSLog(@“Insert is successful”);
[PHPhotoLibrary requestAuthorization:^(PHAuthorizationStatus status){
NSLog(@“This is the status, %ld”, status);
}];
}
}];
您是否尝试将块B放入块A的
if
语句中?不清楚您有什么问题。对不起,不清楚。当我将块B放在块A内时,不会触发块B。但当我将块B放在块A外时,它会按预期工作。您的if
语句是错误的。摆脱代码>。否则,只有当isInsertSuccess
为NO
时,日志才会显示。不会触发块B。当我把它放在块外时,它会按预期工作。然后要么:A)块A永远不会被调用,要么B)或者你在if中的条件导致NO
你确定你不是有意要做[userServiceInstance isInsertSuccess](没有该命令!)?您的日志似乎表明成功,但您的if看起来做的恰恰相反。是的,我甚至删除了整个if语句进行测试。但还是没有运气。奇怪。这算是递归吗?似乎有一种格式,我只是不确定。然后块a永远不会被调用,所以这是你的问题。你没有提供足够的信息来知道为什么会发生这种情况。不,这不是递归的。在我的实际代码中,在块a中的if语句之前有一个NSLog,它将被打印出来。因此,我很确定这个区块被触发了。