COREDATA」カテゴリーアーカイブ

NSFetchedResultsController in iOS 10 Swift 3

平成30年3月24日(土曜日)

[iOS 10] CoreDataの変更内容をまとめてみました。

以下は、未解決!!

error
Study CoreData 14 ~目に見えるしあわせ~


2018-03-24 13:54:18.888127+0900 csv2core[4392:207798] [error] error: (NSFetchedResultsController) A section returned nil value for section name key path 'category'. Objects will be placed in unnamed section
CoreData: error: (NSFetchedResultsController) A section returned nil value for section name key path 'category'. Objects will be placed in unnamed section

let request = NSFetchRequest(entityName:"NasaPicture")  
request.predicate = Predicate(format: "isPagedResult == YES")  

request.sortDescriptors = [SortDescriptor(key: "date", ascending: false)]  

fetchedResultsController = NSFetchedResultsController(fetchRequest: request, managedObjectContext: moc, sectionNameKeyPath: nil, cacheName: nil)  

How to initialize a NSFetchedResultsController in iOS 10 Swift 3

CORE DATA new Knowledge

平成30年3月22日(木曜日)

雛形master-detailを作成すると、自動的に作成されるコードの中で、
以下の部分に気付く。。。。

@objc
func insertNewObject(_ sender: Any) {
let context = self.fetchedResultsController.managedObjectContext
let newEvent = Event(context: context)

// If appropriate, configure the new managed object.
newEvent.timestamp = Date()

要は、entity名(context: context)にて、
newEvent.timestampのようにアクセス可。
いろいろと教えられる事多しなこの頃!!!!!!

上について、更にcoredata作成についても、問題無く格納できることを確認。

注意点:まれにentity名がundefinedとなるが、xcode再立ち上げにて良好となる。

Core Data with Swift

平成30年3月18日(日曜日)

Core Data with Swift
DownLoad_DEMO内に以下保存、実行確認済み。
★CoreDataDemo-master

更に、以下参考(但し、3,4年前なので、このままでは多分不可か)
SwiftでCoreDataを使うときのメモ

★現在、最新 apple sampleと同じ coredata様々
Core Data on iOS 10, a brief overview with an Example

CREATEやUPDATEは、あるが、DELETEは?、以下サイトに検索ワードとして、deleteTaskInで有り(未確認)
Core Data on iOS 10, a brief overview with an Example

DELETEについては、以下参考サイト
iOS: Delete ALL Core Data Swift

改めてCOREDATA リレーション

平成30年3月10日(土曜日)

亡失していたが、4年前に考察し、二段階のフェッチで対処していたことに気付く。
要は、最初のフェッチで、配列の集合を取得し、次のフェッチにて、INを使用して、最初に所得した配列を渡せば、OK!!。

objective-c searchResultsController tableView

平成30年3月7日(水曜日)

tableViewの高さ設定


    ((UITableViewController *)self.searchController.searchResultsController).tableView.rowHeight = 66.0;

その他、searchからの戻りとして、以下

//----------------------------------------------------------------------------
- (void)controllerDidChangeContent:(NSFetchedResultsController *)controller {
    self.fetchedResultsController = nil;
    //[NSFetchedResultsController deleteCacheWithName:@"Master"];
    [self.tableView endUpdates];
    //[self.tableView reloadData];
}
//----------------------------------------------------------------------------

objective-c coredata

平成30年3月7日(水曜日)

update memo

datamodel内に要素として、noがあるとpredicateが上手く働かない。
対策は以下としてOK!!

    [On_off_Request setPredicate:[NSPredicate predicateWithFormat:@"%K =[cd0] %@",@"no",no]];

その他、久々として、備忘録
要素が、例えばintegerであるとして、
predicateもついintegerとしがちだが、stringなので注意!!

CORE DATA(サーチバー関連)

平成30年3月7日(水曜日)

サーチバー経由のディテールビューにて、CORE DATAを更新し、遷移元へのリターンでのERROR.
サーチテーブルと元のテーブルのセクションでもっている数の不一致が原因?なのか
取り敢えず、試したこと。

渡されたOBJECTの更新でなく、別途フェッチコントローラで更新するも、不可。

暫くして気付いたのだが、他アプリでは上手くいっていることが、本アプリでは不可となることが、
追求の原因、しかしながら、これは勘違いで、他アプリでは、別エンティティなので、同一ではない。

元のOBJECT更新に戻し、遷移元で、フェッチコントローラをnilとして、取り敢えず動作可。


Serious application error.  An exception was caught from the delegate of NSFetchedResultsController during a call to -controllerDidChangeContent:.  Invalid update: invalid number of rows in section 0.  The number of rows contained in an existing section after the update (21) must be equal to the number of rows contained in that section before the update (932), plus or minus the number of rows inserted or deleted from that section (0 inserted, 0 deleted) and plus or minus the number of rows moved into or out of that section (0 moved in, 0 moved out). with userInfo (null)

CoreData: error: Serious application error.  An exception was caught from the delegate of NSFetchedResultsController during a call to -controllerDidChangeContent:.  Invalid update: invalid number of rows in section 0.  The number of rows contained in an existing section after the update (21) must be equal to the number of rows contained in that section before the update (932), plus or minus the number of rows inserted or deleted from that section (0 inserted, 0 deleted) and plus or minus the number of rows moved into or out of that section (0 moved in, 0 moved out). with userInfo (null)

coredata(全データ オン・オフ)

平成30年3月3日(土曜日)

DetailTableViewController.m

関数 On_off_flag_Set

wildcardにより、全選択肢、前データオン・オフ。


    // デバッグモード 全データ オン・オフ
    [On_off_Request setPredicate:[NSPredicate predicateWithFormat:@"name LIKE %@",@"*"]];

    // デバッグモード 全データ オン・オフ
    for (int i = 0; i < On_off_Request_Lists.count; i++) {
        [[On_off_Request_Lists objectAtIndex:i] setValue:[NSNumber numberWithBool:flag] forKey:@"on_1"];
    }