PlayList Project

1.cocoa data

2.NSFetchResultsController

3.如何替换master-detail project中的detailview,要把navigation和detail一起删掉,然后创建一个navigation controller,然后由master的table view cell拉出show detail的segue即可。

4.遇到问题,每次都显示了所有list的所有track,即使我没有在新的list中添加任何track,问题出在:我使用了默认的目前被我注释掉的部分。这部分会将整个track表读取出来。

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {

[self fetchedResultsController];

return 1;

//    return [[self.fetchedResultsController sections] count];}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {

return [[(AppPlayList *)_detailItem tracks]count];

//    idsectionInfo = [self.fetchedResultsController sections][section];

//    return [sectionInfo numberOfObjects];

}

5.然后又发现经常出问题,http://stackoverflow.com/questions/7844326/coredata-error-driving-me-crazy-coredata-serious-application-error-an-excep#

http://stackoverflow.com/questions/11706254/nsinternalinconsistencyexception-reason-attempt-to-insert-row-0-into-section

http://www.itstrike.cn/Question/44fa4f9d-98f1-41ae-8fe8-747e4a48fd5d.html

其实总体来说,就是NSFetchResultsController从数据库中fetch出来的表是所有的track,然而我在tableview中展现出来的只是当前的playlist中的track,导致数据不一致而引发了上面的问题,整整调试了一周,才明白原因。

然后我把NSFetchedResultsController刷新tableview的函数注销掉,就好了~

6.学习了一下NSSortDescriptor sortDescriptorWithKey:@"persistentID"

你可能感兴趣的:(PlayList Project)