2016-04-04 271 views
0

我有Accessories.m:長期的Xcode編譯.M

#import "Accessories.h" 

@implementation Accessories 

+(NSArray*)getItemsFor:(NSInteger)n 
{ 
    NSMutableArray *items = [NSMutableArray array]; 
    Accessories *item; 
    BOOL en = true; 

    //From this 
    item = [[Accessories alloc] init]; 
    [item setImage: @""]; 
    [item setName: en ? @"" : @""]; 
    [item setPriceName: @""]; 
    [item setLevel: en ? @"" : @""]; 
    [item setPositive: en ? @"" : @""]; 
    [item setNegative: en ? @"" : @""]; 
    [item setDescrip: en ? @"" : @""]; 
    [item setText: en ? @"" : @""]; 
    [item setTrivia: en ? @"" : @""]; 
    [item setBugs: en ? @"" : @""]; 
    [item setWornBy: en ? @"" : @""]; 
    [item setSlot: en ? @"" : @""]; 
    [item setEquipRegion: en ? @"" : @""]; 
    [item setContributedBy: en ? @"" : @""]; 
    [item setReleased: en ? @"" : @""]; 
    [item setAvailability: en ? @"" : @""]; 
    [items addObject:item]; 
    //Up here it is repeat 1200 

    return items; 
} 

@end 

而且我有這樣的: enter image description here 它持續約7小時。 我曾經可以將優化級別設置爲無[-O0],但現在這不起作用。

+1

它重複1200次在你複製粘貼該塊1200倍?你爲什麼不使用循環? – dan

+0

每個塊都包含獨特的設置。 – user3449878

+0

您應該將它們存儲在覈心數據或plist中,並在運行時加載它。我猜編譯器不喜歡長20000行的方法。 7小時似乎很長,但你可以嘗試提交一個錯誤報告到llvm – dan

回答

0

更可能的是,編譯需要很長時間,因爲編譯器正在使用大量內存來編譯那些病態的奇怪代碼。

如果你願意,你可以提交一個bug。

修復;使用循環並從文件中讀取數據。即使是一個plist也會工作。或者你可以在你的Mac上預先填充一個coredata數據庫,並將它與你的應用一起發佈。

(我真希望那些線1200個拷貝生成的機器!)