Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Modern Core Data(iOS 10)

Noritaka Kamiya
September 28, 2016

Modern Core Data(iOS 10)

Noritaka Kamiya

September 28, 2016
Tweet

More Decks by Noritaka Kamiya

Other Decks in Programming

Transcript

  1. import CoreData
    ࠷ۙɺCore DataͲ͏Ͱ͔͢?
    @nolili
    Noritaka Kamiya

    View Slide

  2. View Slide

  3. View Slide

  4. View Slide

  5. View Slide

  6. CoreData

    View Slide

  7. CoreData

    View Slide

  8. NSAsynchronousFetchRequest
    NSFetchRequest
    NSPersistentContainer

    View Slide

  9. NSFetchRequest

    View Slide

  10. let request = NSFetchRequest(entityName: "Message")
    context.fetch(request) as! [Message]
    Force Casting!
    Before

    View Slide

  11. let request: NSFetchRequest = Message.fetchRequest()
    // fetchRequest() -> NSFetchRequest ͸ࣗಈੜ੒͞ΕΔ
    let messages = context.fetch(request) // [Message]

    After

    View Slide

  12. NSFetchRequest
    NSManagedObjectͷαϒΫϥεΛfetch͢Δ৔߹ʹศར
    SwiftϑϨϯυϦʔʹ
    Swift/Objective-C

    View Slide

  13. NSAsynchronousFetchRequest

    View Slide

  14. let request: NSFetchRequest = Message.fetchRequest()
    let asyncRequest = NSAsynchronousFetchRequest(fetchRequest: request)
    { result in
    let messages = messages = result.finalResult ?? []
    }
    try! managedObjectContext.execute(asyncRequest)

    View Slide

  15. let result: NSAsynchronousFetchResult =
    try! managedObjectContext.execute(asyncRequest)
    result.cancel()

    View Slide

  16. NSAsynchronousFetchRequest
    closureΛ࢖ͬͨඇಉظϑΣονָ͕ʹॻ͚Δ
    Ωϟϯηϧ͕Ͱ͖Δ
    ϑΣονͷProgress΋औಘͰ͖Δ
    iOS 8~

    View Slide

  17. NSPersistentContainer

    View Slide

  18. Α͋͘ΔCore DataͷηοτΞοϓ

    View Slide

  19. /41FSTJTUFOU4UPSF

    View Slide

  20. /4.BOBHFE0CKFDU.PEFM
    /41FSTJTUFOU4UPSF

    View Slide

  21. /41FSTJTUFOU4UPSF$PPSEJOBUPS /4.BOBHFE0CKFDU.PEFM
    /41FSTJTUFOU4UPSF

    View Slide

  22. /41FSTJTUFOU4UPSF$PPSEJOBUPS /4.BOBHFE0CKFDU.PEFM
    /4.BOBHFE0CKFDU$POUFYU
    /41FSTJTUFOU4UPSF

    View Slide

  23. /41FSTJTUFOU4UPSF$PPSEJOBUPS /4.BOBHFE0CKFDU.PEFM
    /4.BOBHFE0CKFDU$POUFYU
    /4.BOBHFE0CKFDU$POUFYU
    1SJWBUF2VFVF

    /41FSTJTUFOU4UPSF

    View Slide

  24. ͭΒ͍

    View Slide

  25. ॳݟࡴ͠

    View Slide

  26. NSPersistentContainer

    View Slide

  27. /41FSTJTUFOU$POUBJOFS NSPersistentContainer(name: "iOS10Sampler")

    View Slide

  28. /41FSTJTUFOU4UPSF$PPSEJOBUPS
    /4.BOBHFE0CKFDU.PEFM
    /4.BOBHFE0CKFDU$POUFYU
    /4.BOBHFE0CKFDU$POUFYU
    1SJWBUF2VFVF

    /41FSTJTUFOU4UPSF
    NSPersistentContainer(name: "iOS10Sampler")
    /41FSTJTUFOU$POUBJOFS

    View Slide

  29. It just works

    View Slide

  30. NSPersistentContainer (iOS 10~)
    Α͋͘ΔCoreDataͷηοτΞοϓΛ؆ུԽ
    طʹ࢖͍ͬͯΔਓʹ͸౰ͨΓલ͔΋͠Εͳ͍͚Ͳͱ͖ͬͭʹ͘͞͸؇࿨͞Ε͍ͯΔ
    ۜͷ஄ؙͰ͸ͳ͍ɻCoreDataΛ࢖͍͜ͳͨ͢Ίʹ֮͑ͳ͚Ε͹͍͚ͳ͍͜ͱ͸ଟ͍ɻ
    NSPersistentStoreDescription Λ࢖͑͹ࡉ͔ͳઃఆมߋ΋Մ

    View Slide

  31. View Slide

  32. View Slide

  33. References
    iOS 10 Sampler
    https://github.com/shu223/iOS-10-Sampler
    What’s new in Core Data
    https://developer.apple.com/videos/play/wwdc2016/242/
    SwiftʴCore DataʹΑΔiOSΞϓϦϓϩάϥϛϯά (੢ํՆࢠɺ ؙࢁ߂ࢻ)
    https://book.mynavi.jp/ec/products/detail/id=50729

    View Slide

  34. https://www.wantedly.com/projects/61105

    View Slide

  35. import CoreData
    ࠷ۙɺCore DataͲ͏Ͱ͔͢?
    @nolili
    Noritaka Kamiya

    View Slide