Hoe update ik iets in Core Data met Swift voor MacOS

In iOS kan je dat doen door de indexPath: IndexPath te gebruiken maar in macOS gebruik je row: Int

in iOS kan je dit doen

let notebookObj = self.fetchedResultsController.object(at: indexPath)

Maar dit werkt niet in macOS maar hoe kan het dan wel?

Zie op Google Youtube Udemy en Lynda alleen maar iOS manieren
En de Apple documentatie word ik ook niet veel wijzer van.

NSFetchedResultsController werkt vanaf 10.12. Daarvóór kun je bindings gebruiken.

Ik ben nog vrij nieuw met apps maken in Swift. Koen zou je dit wat verder kunnen toelichten of een voorbeeld tonen?

Zelf iets opzoeken leer je het meeste van. En als je beginner bent, zou ik nog maar even wachten met CoreData.

kijk hier eens: https://www.appcoda.com/core-data-tutorial-update-delete/

Dank je joopgran voor het mee denken. Alleen zie ik dat dit ook voor iOS is en ook nog eens in Objective C.
Daar werken ze weer met indexPath: IndexPath wat ik niet in macOS vind wand daar is het row: Int

Nogmaals, CoreData is een onderwerp voor gevorderden.

Alles wat je wilt weten staat in de Apple documentatie. Dat kun je ook raadplegen via Xcode. Als je daar ‘niet veel wijzer’ van wordt, moet het gewoon nogmaals lezen, en eventueel nog een keer. En gewoon blijven proberen.

Koen ik heb kunnen vinden hoe ik een insert delete en show moet doen allen en update nog niet.
Ik probeer ook nog steeds te snappen wat er zo makkelijker moet zijn aan core data dan gewoon sql want tot nu toe vind ik het in php veel simpeler gaan dan hoe het in swift gaat.

Maar ik hou vol ooit ga ik het vinden alleen wel teleurstellend om zo lang te moeten zoeken vind de documentatie van Apple erg slecht.
Lijkt dat apple niet veel aandacht heeft voor macOS wand voor iOS is veel meer documentatie over vermeld

Beste Jaco,

Zoals Koen al aangaf is CoreData een onderwerp voor gevorderden. Dat er niets over CoreData te vinden is meer een kwestie van weten wat en waar je moet zoeken. CoreData voor iOS en macOS verschillen nogal vanwege hun historische achtergrond. Het framework is in basis voor beiden hetzelfde.

Er is een recent boek van een Belgische ontwikkelaar Bart Jacobs die CoreData voor meerdere Apple platformen uitstekend uitlegt. Hierin maakt Bart gebruik van Swift 4 en Xcode 9. In zijn welkomswoord verneldt hij het volgende:

‘Welcome to Mastering Core Data With Swift. In this book, you’ll learn the ins and outs of Apple’s popular Core Data framework. Even though we’ll be building an iOS application, the Core Data framework is available on iOS, tvOS, macOS, and watchOS, and the contents of this book apply to each of these platforms.’ - Uittreksel van: Bart Jacobs. ‘Mastering Core Data With Swift: Update for Xcode 9 and Swift 4’.

Dit boek is te koop bij: ‘http://leanpub.com/mastering-core-data-with-swift

Ik wens je veel succes met je applicatie en laat via PM even weten hoe je vordert!

(y) voor Bart Jacobs.

Bedankt e.abrahamse ik ga het eens onderzoeken of dat boek ook iets heeft voor macOS. Ik heb nu al heel wat gekocht alleen allemaal voor iOS en dat weet ik nu wel hoe dat daar ongeveer gaat.

Hoi Jaco en anderen,

CoreData is een lastig en omvangrijk framework dat niet gericht is op snelle oplossingen. De mogelijkheden die CoreData bieden zijn zeker voor een beginner (die snel resultaat wil zien) de nodige uitdagingen. Het unieke van het boek van Bart is nu juist dat het voor alle platformen een basis legt voor effectieve datastructuren. Ondanks de prijs van €39,00 is het volgens mij de meest crashvrije weg naar een succesvolle app met CoreData.

Overigens is CoreData niet de enige manier om data op te slaan en weer uit te vragen. Kijk op de Nederlandse SwiftDev.nl website op de pagina http://www.swiftdev.nl/artikels/videos/ en zoek de video ZON-2016-08-21 Lokaal opslaan van data. Deze uitleg zal je zeker verder helpen om snellere resultaten te bereiken. Op deze website van SwiftDev.nl kun je meer voorbeelden en oplossingen vinden.

Voor macOS ontwikkelaars zijn er een aantal courses van Rob Walter en Devslopes. Je vindt ze o.a. via Udemy. Ook de iOSAcademie heeft een dag aandacht besteed aan het ontwikkelen van apps voor macOS in Xcode en met Swift.

Ben je geinteresseerd in de ontwikkeling van apps in Swift en vind je het leuk dat met andere Nederlandse ontwikkelaars samen te doen of hen als backup te gebruiken, ben je van harte welkom. Meld je via het Discord-kanaal aan en leg snel contact met meer ervaren gelijkgestemden.

[quote=e.abrahamse url=https://www.onemorething.nl/community/topic/hoe-update-ik-iets-in-core-data-met-swift-voor-macos/#post-3096922 time=1505912190]Beste Jaco,

Zoals Koen al aangaf is CoreData een onderwerp voor gevorderden. Dat er niets over CoreData te vinden is meer een kwestie van weten wat en waar je moet zoeken. CoreData voor iOS en macOS verschillen nogal vanwege hun historische achtergrond. Het framework is in basis voor beiden hetzelfde. [/quote]

Dat klinkt tegenstrijdig :slight_smile:

Maar dat laatste klopt, het iOS en macOS CoreData framework zijn identiek.
Het probleem wat hier speelt is de koppeling met de UI.

Onder macOS kun je bindings gebruiken (NSArrayController koppelen aan de CoreData context/entiteit en de TableView kolom(men) koppelen aan de ArrayController)

Werkt prachtig (zonder amper een regel code te moeten schrijven) maar het heeft een steile leercurve en is in geval van problemen zeer lastig te debuggen.

Niet iets om als onervaren macOS developer mee te starten.

Om te beginnen gewoon de data ophalen met een NSFetchRequest en het resulterende array gebruiken als datasource voor de tableview.

Bedankt bitsflew voor de informatie van de NSArrayController ik ga dat opzoeken.

Heel erg bedankt e.abrahamse voor het filmpje ZON-2016-08-21 op http://www.swiftdev.nl/artikels/videos/ wand op het einde word uitgelegd hoe je gewoon met sqllite3 kan werken. Dit is voor mij goed te berijpen omdat ik daar vaker mee gewerkt heb. Nu kan ik toch gewoon verder met een app bouwen die ik kan gebruiken. Ik ga ook gewoon verder met het uitpluizen hoe ik met core data een update doe. En wat bitsflew ook al zij “Het probleem wat hier speelt is de koppeling met de UI.”