あなたがやろうとしていることは有効ですが、上記のコメントが正しく、これが AppCode のバグによるものであり、受け取った警告が作業にレンチを投げる場合 ( -Werrorを使用する場合など)、または単に気になる場合それを受け取るには、 -init内で配列を割り当てるだけで回避できます。
公正な警告: このコードは私の頭から離れたものであり、記述どおりに動作することを保証するものではありません。
@implementation MonthView {
DayView ***dayViews;
}
@interface MonthView
- (id)init {
if ((self = [super init])) {
int i;
// do stuff here
// Create the array
dayViews = malloc(sizeof(id) * 6);
dayViews[0] = malloc(sizeof(DayView *) * 6 * 7);
for (i = 1; i < 6; i++) {
dayViews[i] = dayViews[0] + (i * 7);
}
}
return self;
}
@end
このコードは、必要な malloc の呼び出し数を最小限に抑えながら、通常どおりアクセスできる 2 次元配列を生成する必要があります。