The block arguments in dispatch_async() and dispatch_after() are guaranteed to escape. If those blocks capture any pointers with the noescape attribute then it is an error.