我有一个具有以下签名的方法:
- (void)takeIntsAndRecieveIntsAsync:(MyInt *__strong [])
completion:(void (^)(MyInt * __strong response[]))success;
我有几个问题:
1. 如何在这个方法中使用 NSInvocation 检索参数?
- (void)forwardInvocation:(NSInvocation *)invocation
我尝试了以下但我没有得到正确的值:
__unsafe_unretained MyInt *a[2];
[invocation getArgument:(void *) &a atIndex:index];
我可以有一个包含 n 个 int 对象的数组,所以我不应该硬编码 2. 如何在运行时确定对象数组的大小?我是否需要数组中的哨兵值来确定边界?
2. __strong 限定符对输入参数和块参数都正确吗?请注意,该块是异步的,将在稍后执行。