我想轉換現有的應用程序使用核心數據。我建立了我的實體,並使用NSFetchedResultsController在表視圖中顯示數據。目前,我只是在每次啓動應用程序時填充數據庫。奇怪布爾在tableView中的行爲(當是1不等於1?)
它似乎工作正常,除了一個奇怪的問題。我的實體有一個BOOL值,「showStarCorner」決定了星形圖像是否應該顯示在表單元格中......所以,在配置每個表格單元格時,我會調用類似於此的語句:
if (myObject.showStarCorner == [NSNumber numberWithBool:YES]) {
// show the star corner
}
但令人驚訝的是,結果是隻有在該應用啓動時創建的對象上才顯示星標。 (添加的應用程序的啓動以前應顯示明星的對象都沒有)
我增加了一個額外的測試,以幫助弄清楚什麼是錯的:
if (myObject.showStarCorner == [NSNumber numberWithBool:YES]) {
NSLog(@"%@ == %@", myObject.showStarCorner, [NSNumber numberWithBool:YES]);
}
else if (myObject.showStarCorner != [NSNumber numberWithBool:YES]) {
NSLog(@"%@ != %@", myObject.showStarCorner, [NSNumber numberWithBool:YES]);
}
...這會導致else語句獲取調用爲先前添加的對象:
1 != 1
據我所知,1應該始終等於1 ......所以我完全莫名其妙。
我將不勝感激任何幫助。它可能與正在創建的每個應用啓動時具有相同屬性的新對象有關嗎? (我沒有分配任何唯一的ID或任何東西,只是按照添加日期對結果進行排序)
謝謝(對你們三個人的回答!)。這當然是問題所在,現在它工作正常。我希望不會再犯的一個菜鳥錯誤。 – 2011-03-03 03:55:44