2011-04-22 85 views
0

不要爲什麼發生這種情況我有它返回的管理對象iphone:無法將陣列的實例複製到另一個陣列

NSArray *fetchedOutages = [context executeFetchRequest:fetchRequest error:&error]; 
if (error) { 
    NSLog(@"Error in Core Data: %@", [error description]); 
} 
return fetchedOutages; 

當我嘗試這個數組複製到listOutage陣列的方法getOutage(此是一個屬性)

@property (nonatomic, retain) NSArray *listOutage 

我試圖此數組像這樣在didRowSelectMethod複製這樣

if (listOutage) { 
     NSLog(@"Its there"); 
     [listOutage release]; 
    } 

    listOutage=[[NSArray alloc] initWithArray:[self getOutage]]; 

我嘗試過其他各種方法,但都失敗了。

這getoutage方法返回5個對象五個對象在listOutage得到了複製,但是當我嘗試訪問它們將顯示爲listOutage元素「超出範圍」 請幫我克服這個我有這個傳遞到一個視圖控制器。

在此先感謝

回答

1

當有一個屬性,而不是使用「財產」這樣一來,當別人讀取你的代碼是比較明顯的「self.property」如果你的意思是伊娃或屬性。

如果你使用self.property,你不需要寫

if (listOutage) { 
     NSLog(@"Its there"); 
     [listOutage release]; 
    } 

    listOutage=[[NSArray alloc] initWithArray:[self getOutage]]; 

代替,只寫

NSArray newListOutage=[[NSArray alloc] initWithArray:[self getOutage]]; 
self.listOutage = newListOutage; 
[newListOutage release]; 

釋放和保留將由生成了get/set方法來處理@synthesize屬性。

相關問題