这是我的代码片段,我收到了上述错误。
dispatch_async(background_thread, ^{
cameras camera[10];
.
.
for(int i=0; i<ncam; i++) {
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0),^{
iPoint subPoints[10];
subPoints[0].x = camera[i].x + ((int)camera[i].mindist)*cos(camera[i].dir + (camera[i].angle)/2);
.
.
.
});
}
});
相机实际上是C型结构,错误在于相机阵列。有人请帮我解决这个问题。
答案 0 :(得分:1)
您的相机位于堆栈中,而objective-c在具有不支持引用计数的变量的块中工作严重。尝试在NSObject中移动此数组:
@interface TenCameras : NSObject
{
@public
cameras camera[10];
}
@end
然后你的代码会是这样的:
dispatch_async(background_thread, ^{
TenCameras tenCameras;
.
.
for(int i=0; i<ncam; i++) {
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0),^{
iPoint subPoints[10];
subPoints[0].x = tenCameras->camera[i].x + ((int)tenCameras->camera[i].mindist)*cos(tenCameras->camera[i].dir + (tenCameras->camera[i].angle)/2);
.
.
.
});
}
});