我想创建一个由 CGRect 指针数组组成的属性,数字在开头没有定义,所以我想创建一个指向包含该指针数组开头的内存区域的指针。这似乎很困难,我已经看到了不同的答案并以此为基础。
到目前为止,我已经写过:
@interface ViewController ()
@property (assign) CGRect * rectArray;
@property (strong, nonatomic) NSArray * hotspots;
@end
@implementation ViewController
- (CGRect *) createRectArray {
int count = _hotspots.count;
_rectArray = malloc(sizeof(CGRect*)*count);
for (int i = 0; i<count; i++) {
CGRect currentFrame = ((UIView*)_hotspots[i]).frame;
_rectArray[i] = ¤tFrame;
}
return _rectArray;
}
@end
但编译器抱怨告诉我分配不正确。
我猜可能正确的变量不是CGRect * rectArray,而是双重间接CGRect ** rectArray。
那是对的吗?
[更新]
实际上我想做的事情没有意义......因为属性 -frame 返回 CGRect 的副本而不是指向它的指针,所以我直接快速访问它的想法已经不复存在。