2011-12-23 60 views
2
@implementation MonthView { 
    DayView *dayViews[6][7]; 
} 

的Xcode不會抱怨這個代碼,但AppCode給出了一個警告:AppCode警告有關C風格的數組中的一個Objective-C類

指向非const類型「DayView * * const *'沒有明確的生存期

我的目的是創建一個6x7的DayView指針塊,它將成爲任何MonthView實例的內存佈局的一部分。

這段代碼是做我想做的事情,我該如何解決這個警告?

+0

您是否正在編譯ARC設置? – dasblinkenlight

+0

是的,我正在使用ARC。 – titaniumdecoy

+0

此警告發生在哪裏? –

回答

1

什麼你試圖做的是有效的,但如果上述意見是正確的,這是由於在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的呼叫的數量的二維陣列。