Sunday, October 2, 2016

Core Data Transformable Vs Binary Options

Met 'n binêre kenmerk, lees jy en direk skryf gevalle van NSData. Met 'n omvormbare kenmerk, lees jy en skryf gevalle van 'n klas wat omgeskakel kan word na en van NSData. Die werklike data stoor is dieselfde as met 'n binêre kenmerk, maar Core Data gebruik van 'n NSValueTransformer om te skakel na / vanaf NSData wanneer dit nodig is. Byvoorbeeld, sê jou bestuur voorwerp het 'n beeld kenmerk waar dit gerieflik sou wees om te lees en direk skryf UIImage. Behalwe, UIImage in Core Data kan nie gered word nie. Maar UIImage kan omgeskakel word na en van NSData. Dus, as jy 'n omvormbare kenmerk gebruik wat jy kan lees en skryf UIImage terwyl hy nog NSData hou in die data stoor. antwoord 10 Januarie 13 aan 18:43 Tom, Sal die omvormbare data behou dieselfde NSData gedrag met betrekking tot eksterne stoor (selfs al is, die toelaat eksterne stoor is nie uitdruklik in die UI, of sou druppels begin verskyn op die Core Data Store) Die dokumentasie nie juis sê dat die omvormbare kenmerk, sal gered word na 'n eksterne rekord of die reëls wat toegepas sal word. Kan jy deel jou ervaring uitvoering maak Tommie C. 13 September 15 by 02:19 Presies Ek het dieselfde vraag. Daar is nie so opsie in omvormbare kenmerk tipe gestoor word in quotExternal Storagequot. Is dit by verstek aangeskakel of wat uitvoering maak Marcin Kapusta 26 Februarie by 16: 02I is op die punt om die uitdagende projek te onderneem van die omskakeling van my lewe (dws reeds op die App Store vir 'n aantal jare) artikels van omvormbare om binêre data stoor vir beelde in Core Data. Ek het baie gebruikers met 'n baie groot databasisse wat baie beelde op te slaan. Dit het regtig vertraag die Friends / proses herstel, en waarskynlik 'n paar ander agter-die-skerms kwessies veroorsaak sowel. Ek het nie geweet 'n beter wanneer ek sit dit op hierdie manier jaar gelede. Hoe kan ek ondergaan hierdie proses sodat dit nie eens een van my kliënte beelde verloor As dit net ek en my eie data, Im seker ek kon kry dinge werk. Maar ek wil seker wees om dit behoorlik te doen, stap vir stap, en ek het geweet dat hierdie gemeenskap 'n groot hulp in daardie gebied kan wees. Ek het regtig nie weet waar om te begin vir die bestaande beelde. Eintlik is ek op soek na 1) stappe te neem, sodat dit nie 'n beat te mis. en 2) die algemene raad, waarskuwings, ens in hierdie proses. Ek het regtig nodig het 'n skoon migrasie wanneer hierdie weergawe gaan woon. Dankie by voorbaat vir enigiemand wat kan help. gevra 13 Maart 14 by 18:38 Van die antwoord van Z S bo, lyk dit of ek sal nodig hê om te skuif na die bestuur van al die lêers myself sedert ek probeer om te implementeer Core Data iCloud sync sowel. Ugh. Wat kan van wurms sal dit oop Is dit selfs moontlik om die quotoriginalquot beelde terug te kry van die bestaande data, en indien wel, sal dit neem selfs langer as die swaar migrasie wat jy hierbo uitvoering maak Sahm 14 Maart 14 beskryf by 03:13 Swaar migrasie is die ergste. Doen 'n uitvoer / invoer sal vinniger (nie so vinnig as liggewig migrasie) wees en sal jou toelaat om al die bestaande beelde te bewaar omdat jy hulle sal uitvoer uit te skyf as deel van die migrasie. â € Marcus S. Zarra 14 Maart 14 aan 03:39 That39s snaaks jy moet sê dat, ek begin om te implementeer Core Data iCloud sinchroniseer vandag so goed. Die artikel was baie oog opening. Doesn39t inspireer veel vertroue, veral die laaste deel. So dit blyk dat ek het geen ander keuse as om die URL te red, reg of miskien is dit nog nie quotthe timequot om te probeer om sync implementeer nie, maar ek is op soek na Drew McCormack39s ensembles, indien u enige gedagtes oor wat. â € Sahm 14 Maart 14 by 03:08 My persoonlike mening (na iCloud Core Data Sync nadat verskeep in my jeug) is dat it39s redelik vaste as jy jouself beperk tot iOS7 / 10.9 SLEGS. Geen twyfel dat jy enigiets shouldn39t ondersteun voor daardie. Selfs dan, dit verg 'n bietjie werk om te ondersteun, soos dit artikel noem (opsies om iCloud skakel op / af, rekening oorgange ens) die mees algemene situasie te loop in dat die sync nie meer werk na 'n ruk vir 'n paar gebruikers en jy moet bied 'n manier om die houer te herstel. Ek sou meer navorsing te doen. â € Z S 14 Maart 14 aan 22:22 Ek haven39t gekyk genoeg in Ensembles om kommentaar te lewer op it39s vermoëns, maar I39d versigtig te vertrou ander individual39s implementering teen Apple39s wees. Apple39s weergawe het probleme sedert gestuur het, maar they39ve verbeter dit wesenlik in elke update, en hulle het 'n span van mense ondersteun hierdie pad vorentoe. It39s belangrik om te weet wie jy is dependancies bou teen. Maar jy moet jou eie navorsing natuurlik doen. â € Z S 14 Maart 14 aan 22:25 Kan iemand asseblief werk hierdie It39s meer as 'n jaar sedert hierdie kommentaar is gemaak. I39ve die artikel te lees, maar it39s IOS 9 om die hoek en ek vermoed 39Allow Eksterne Storage39 sou (lees: moet) werk Indien nie, we39d van meer gille en klagtes gehoor het. I39m oor 'n nuwe projek te skep en moet die regte besluite te neem. Dankie uitvoering maak strangetimes 7 Julie toe 15 4: 24Transformable eienskappe in Core Data Boring: snare en heelgetalle pret en geheimsinnige: omvormbare Benewens die gewone tipes string, vlot, boolean, datum waarop jy kan kern data entiteite definieer met 'n kenmerk van die tipe omvormbare. Wat is hierdie magiese tipe, en wat beteken dit omskep in Voeg 'n omvormbare eiendom, genereer 'n NSManagedObject subklas, en dit is wat yoursquoll sien: 'n gewone ou ID. So in teorie, kan jy enige voorwerp daar neer te sit. Op 10.9, kan ek my eie persoonlike NSObject subklas voorwerp ingestel om die omvormbare eiendom, maar toe ek die konteks te red kry ek 'n uitsondering vir die onherkenbare encodeWithCoder: boodskap. Therersquos die idee dat die voorwerp moet voldoen aan NSCoding. So NSArray. NSDictionary. NSData. en ander uit die boks ondersteun. Sodat jy kan jou eie klas gebruik as-is so lank as wat jy die vereiste protokol metodes initWithCoder implementeer en encodeWithCoder. Dan kan jy en Core Data 'n kamer te kry en jou data sal gelukkig wees volgehou en besef met jou klasse ongeskonde. Die standaard nadeel is dat omvormbare eienskappe word in die SQLite backend as binêre plists binne BLOB, sodat jy canrsquot diegene velde direk navraag van 'n NSPredicate. kopie Kopiereg 20092016 Greg Heo in San Francisco deinitUsing omvormbare ampamp binêre data eiendomme in Core Data: Soos u weet Core Data eienskappe kan eienskappe soos Ongedefinieerde, Integer16, Integer32, Integer64, vlot, Desimale, Datum, Boole, String, Double, Binary het data in Objective C te bied. Uit al hierdie eienskappe binêre data is moet in ag geneem word. Met die ondersteuning van al hierdie eienskappe Swift taal bied ook jy omvormbare eiendom wat baie interessant Belangrike. As gevolg van hierdie eiendom kan jy enige soort data in die Core Data sit sonder ekstra oorhoofse. In hierdie handleiding ek gaan om jou te wys hoe om albei hierdie eienskappe gebruik. (Binêre data ampamp omvormbare eiendom). 1. Soos gewoonlik te skep 'n singleView sjabloon aansoek ampamp naam dit ImportantDataTypeInCoreData ampamp kies taal so vinnig verlaat boks Core Data Afwagtende ons sal ons kern datamodel later insit. soos getoon in die foto hieronder: 2. Voeg 'n liedjie waarvan die URL ons sal stoor in die urlOfSong skryf ons sal skep in model binnekort. 3. Nou dat ons 'n projek om ampamp voltooi sal ons gebruik Core Data eienskappe so nou 'n kakao Touch klas met die naam Persistence wat subklas van NSObject ampamp dan vir die insluiting van model kliek op die gids ImportantDataTypeInCoreData ampamp klik op New - gt lêer Core Data (iOS veld) - gtData model ampamp naam dit eienskappe voort dan totdat dit sal geskep word soos in Beeld: 4. Nou maak die model wat jy nou net gemaak het ampamp 'n entiteit genaamd UseOfDataTypes voeg met twee eienskappe urlOfSong ampamp naam van tipe omvormbare ampamp binêre data onderskeidelik, getoon in die prent hieronder: 5. Hou die entiteit UseOfDataTypes gekies gaan ons 'n NSObject Klas skep. Klik op die redakteur ampamp kliek dan op die skep NSmanagedObject Subklas opsie ampamp volg die instruksies tot die klas met dieselfde naam as entiteit geskep sal word. NSObject subklas geskep met die naam dieselfde 'n entiteit UseOfDataTypes oopmaak ampamp jy sal sien iets soos wat in die onderstaande aangebied Image: Soos getoon in hierdie prent urlOfSong kenmerk is van tipe AnyObject, want dit is van omvormbare tipe ampamp dit moet verander in dit wat ons nodig het om op te slaan in Core Data ampamp naam is van tipe NSData want ons sit dit om binêre data in die model. Gaan voort ampamp transformeer jou klas in 'n bietjie in die onderstaande prent: var managedObjectContext. NSManagedObjectContext. Laat modelURL NSBundle. mainBundle (). (. Eiendomme withExtension: momd) URLForResource laat managedObjectModel NSManagedObjectModel (contentsOfURL: modelURL) laat storeURL Persistence. applicationDocumentDirectory. URLByAppendingPathComponent (properties. sqlite) laat persistentStoreCoordinator NSPersistentStoreCoordinator (managedObjectModel: managedObjectModel) var fout. NSError. nul indien (persistentStoreCoordinator addPersistentStoreWithType (NSSQLiteStoreType opset:... nil URL: storeURL, opsies:. nil fout: amperror) nil) laat managedObjectContext NSManagedObjectContext () managedObjectContext. persistentStoreCoordinator persistentStoreCoordinator Hier in die bogenoemde vertoon kode al ons doen is net om die pad waar ons slaan die model wat ons geskep aangewys as properties. xcdatamodeld ampamp dan skep die volharding winkel koördineerder ampamp ManagedObjectModel ampamp konteks. ------ Gtgtgtgtgtgt Nou het ons alles opstel voeg volgende kode om lêer Persistence. Swift vir die berging van voorwerpe om Core Data: laat anyObject NSEntityDescription. insertNewObjectForEntityForName (. UseOfDataTypes inManagedObjectContext: managedObjectContext) as. UseOfDataTypes laat pad NSURL (fileURLWithPath:. NSBundle mainBundle () pathForResource (pooja ofType:.. Mp3)) anyObject. urlOfSong pad as NSURL var archievedName NSKeyedArchiver. archivedDataWithRootObject (Naam) // Argief die data op te slaan in Core Data vir binêre data attributeCore Data Image Caching Gepubliseer op 16 Maart 2012 deur Hawk iMedia Dit is 'n algemene patroon vir 'n app om iets met data wat nie plaaslike doen. Die handhawing van goeie artikels prestasie terwyl gaan haal die data is 'n uitdaging (en nie die fokus van hierdie artikel). Hou die data, en genoeg van dit vir latere gebruik en om te verhoed dat met dit weer te kry, is nog 'n uitdaging. Daar is voor die hand liggend oplossings, 'n paar maklike en 'n paar nie, en almal met hul eie voordele en nadele. Wat is die kas Caching is eenvoudig, hou iets om vir latere gebruik wat 8220hard8221 was in die eerste plek te kry. Dit kan wees eksterne data, 'n berekende waarde, of enigiets wat eerder nie you8217d moet meer as een keer te verkry as jy dit kan vermy. Caching moet nie beskou as 'n oneindige proses egter. Daarmee bedoel ek jy can8217t net kas alles vir ewig Jy moet 'n manier om die kas van tyd tot tyd op grond van 'n algoritme wat sin maak vir jou aansoek te reinig nie. 'N Algemene (en eenvoudige) algoritme kleinste Onlangs gebruik word, of LRU. Met hierdie algoritme, die teorie is dat die items in jou kas wat die minste gebruik is kandidate om versoen vorm die kas wat gebaseer is op 'n paar drumpel van nie-gebruik. Jy kan dink dat op 'n mobiele toestel suiwering die kas is belangrik as gevolg van die inherente ruimte beperkings. Jy kan ook kies om 'n beperkte hoeveelheid data kas (maar you8217d steeds nodig om te weet wat om te daal as die kas het te groot.) Doelwitte van kas Die redes vir die kas is redelik eenvoudig: Maar hoe is dit bereik Dit hang gedeeltelik op watter 'n redelike definisie van 8220performance8221 is vir jou inligting. Prestasie as dit betrekking het op die kas sal duidelik in verskillende plekke wees: Aanvanklike kas vrag kas skoonmaak toegang Cache Cache red Soos duidelik as I8217ve het hierdie lys, dit blyk dat elkeen van hierdie dinge is verwant aan mekaar tot 'n mate. Byvoorbeeld, kas suiwering is iets wat jy kan uit te voer tydens die kas laai. Die frekwensie van die kas, behalwe moet wees met betrekking tot iets soos hoe 8220dirty8221 die kas is (hoeveel dinge verander het sedert die laaste red) of hoeveel tyd verloop het sedert die die laaste red. Implementering opsies Daar is verskeie opsies vir die implementering van 'n kas. Jou keuse hang baie af van watter soort inligting wat jy is caching, hoeveel data wat jy nodig het om die kas, hoe jy jou kas (dit wil sê suiwering) sal slaag, en waarskynlik 'n baie ander spesifiek vir jou app dinge. Die voor die hand liggende keuse sluit in: databasis woordeboek lêers of 'n kombinasie van hierdie Let8217s kyk na elkeen. Woordeboek Gebruik 'n woordeboek lyk soos 'n ooglopende keuse. Hulle is maklik om te gebruik, en maklik om te verstaan. Vir baie klein datastelle, kan dit 'n goeie keuse wees. Maar wanneer jou datastel kry 8220large8221, sal jy begin om prestasie kwessies sien veral wanneer jy nodig het om dit te laai, te reinig nie, of stoor dit. Die gebruik van 'n woordeboek is beslis maklik en vinnig. So ook, lees en skryf van 'n woordeboek is maklik nie, maar as jou datastel groei, sal hierdie aksies stadig omdat you8217re lees geword en skryf die hele woordeboek. Voor: Vinnig en maklik, veral vir klein datastelle Nadele: Nie skaalbare, maw prestasie vertraag as die datastel groei. Lêers Individuele lêers kan 'n verbetering wees. As you8217re kas sê, miniatuur prente, kan jy 'n plan te ontwerp vir die skryf van elke lêer aan die lêerstelsel op 'n wyse wat later kan jy dit weer te vind. Dit het die voordeel dat you8217re net lees en skryf van 'n enkele lêer op 'n slag. Dit het die nadele wat jy kan om 'n swaar las op die lêer stelsel en dit is moeilik, sonder addisionele meta data elders geberg, in die kas te bestuur in terme van suiwering ou data of die beperking van it8217s grootte. Hierdie benadering is 'n bietjie meer ingewikkeld as die gebruik van 'n woordeboek, maar nog steeds eenvoudig genoeg om te verstaan ​​en te hanteer. Voor: Hard aan die kas suiwering databasis Jy het waarskynlik gewonder bestuur wanneer I8217d kry om CoreData n databasis bied 'n mooi onttrekking tot jou inligting, nie om ewetoeganklike noem: Nog eenvoudige, en moet relatief vinnig op te slaan en data te haal nie, behalwe in uitsonderlike gevalle nadele wees om die data en die afvaardiging van sekere 8220hard8221 take om die onderliggende databasis. CoreData eintlik is nuttig vir caching, wat ek geleer het, as gevolg van die voordele van databasis-agtige bedrywighede. (Sodat ek herinner word aan dit in die kommentaar. CoreData is nie 'n databasis) Op meer as een geleentheid het Ek dan nou 'n CoreData-gebaseerde kas gebruik vir die berging van beeld data plaaslik. Die prestasie voordele alleen was die moeite werd. Maar ek didn8217t begin met CoreData. Ek het eintlik begin met 'n woordeboek. In een app store ons oor 3MB of meer van die beeld data, met 'n 30 dae verloop op individuele inskrywings. Dit blyk dat probeer om te lees of te skryf soveel data as 'n woordeboek is stadig en erger, die hele woordeboek moes word gekruis met inskrywings vind om te verval, wat dinge erger gemaak. 'N Voorbeeld By wyse van voorbeeld, wou ek daarop wys net 'n paar dinge oor my beeld CoreData kas, wat nou in gebruik in 'n paar programme. Die model begin redelik eenvoudig: Ek was 'n CoreData noobie toe ek hierdie eerste ontwikkel, so ek omskryf die beeld data kenmerk as binêre data. Dit het gewerk, maar vereis dat ek die werk te doen in my kode om die data te omskep in 'n UIImage. Dit blyk CoreData kan hierdie soort van transformasie te doen vir jou met behulp van die kenmerk tipe omvormbare. Meer oor dit later. Die imageUrl kenmerk is eintlik die sleutel vir elke rekord. En die lastUsedTimestamp is die sleutel (so te sê) te bestuur kas suiwering. Toe my jeug begin, en die model en gepaardgaande komponente geïnisialiseer, die eerste ding wat gedoen is om die kas van enigiets wat verstryk reinig. Dit word gedoen met behulp van 'n vooraf gedefinieerde haal versoek: En die volgende kode: Daar is baie dinge om te hou oor hierdie kode (ek dink). Vir een, dit is kompak. Daar is geen rede om Itereer oor die hele kas na die inskrywings in wat belangstel we8217re vind. Trouens, ons het net laat CoreData deal met dit. En, ons het eintlik 'n baie klein aantal voorwerpe (indien enige) om dit te skrap raak. Op die ou end, CoreData bestuur wat voorwerpe is vuil, of verwyder, en doen die regte ding. Want wat die moeite werd it8217s, die kode om inskrywings te gaan haal op grond van hul URL is insgelyks kompak. Ons gebruik 'n ander gedefinieerde haal versoek vir daardie. As 'n optimalisering, ek wou ophou stoor binêre data (en die omskakeling dit in my kode vir UIImage) en plaas gebruik 'n omvormbare. Dit het gelyk of reguit vorentoe genoeg: Skep 'n nuwe weergawe van die model, verander die data tipe binêre data te omvormbare, en laat Liggewig Migrasie sorg vir die res. Ongelukkig is dit didn8217t werk. Here8217s die model Ek het uiteindelik met: asook die kartering model vir die migrasie: Dit het Liggewig Migrasie te werk nie, maar ek het 'n bietjie ekstra werk te doen in my kode vir die data van data beweeg die nuwe kenmerk beeld van om tik omvormbare: Die veranderlike inskrywing is 'n bestuurde voorwerp nuut haal uit CoreData. Vir die geval waar daar 'n ou data rond hang, moet ons die beeld kenmerk 'n UIImage stel geskep met behulp van die data. CoreData sal sorg vir die omskakeling na binêre data, en stoor dit so. En in die toekoms, die beeld kenmerk sal net 'n beeld wat ons kan manipuleer nie. Dit is miskien nie die mees doeltreffende manier om hierdie te doen nie, maar dit blyk te werk en ek couldn8217t n ander oplossing te vind. Ons het ook entry. data tot nul te stel sodat ons twee afskrifte van die binêre data in CoreData don8217t het en daarom het ons don8217t hierdie 8220upgrade8221 doen elke keer vir elke beeld. It8217s niks werd nie, ten minste, dat hierdie klein data migrasie net gedoen word as beelde genoem deur die UI. So het die pyn van hierdie is versprei as die jeug gebruik word. En daar is altyd 'n kans dat die kas inskrywings sal die ouderdomme uit voordat hulle ooit tot bekering kom met hierdie kode. Ek troos in daardie. Gevolgtrekkings CoreData rotse Sodra jy verby die standaard, maar noodsaaklike boiler-kode wat jy moet skryf om CoreData gebruik in jou jeug, is dit nogal lekker om te gebruik en regtig bevry u van om bekommerd te wees te veel oor hoe om die data te bestuur en kan jy fokus op hoe jy moet die data in jou app. Vir kas doeleindes, ek dink dit is 'n baie mooi alternatief en dit lyk goed werk vir my tot dusver. Wat is jou gedagtes oor caching met CoreData Laat my weet in die kommentaar. Deel hierdie: Tom Wilson sê: Sou dit nie beter wees om die beeld data op die skyf te stoor en net gebruik die kern data voorwerpe om tred te hou van die meta-data (url, laaste gebruikte tyd stempel) hou, en dan ignoreer die prepareForDeletion metode om skoon te maak die lêers stoor van die lêers, sodat jy dit maklik kan vind en het hulle uniek maak, is maklik om 8211 net maak 'n gemors uit óf die url of die kern data ID (maak seker dat sy 'n permanente een en nie die tydelike een: P) dit manier kan jy haal en lus deur en doen wat met die Cache rekords, sonder om die kern data haal die beeld data in ram voortdurend. Indien 'n redelike prestasie hupstoot sonder veel effort8230 Hi Tom - dank vir daardie voorstel it8217s n mooi optimalisering. Een detail Ek het uit my artikel is dat wanneer ek 'n bestuurde voorwerp van CoreData haal, ek hou dit in 'n in-geheue woordeboek. So een keer die beeld data (as deel van die bestuur voorwerp) gelees in, it8217s in die geheue. die volgende keer it8217s so nodig, dat ek / O is nie nodig nie. Dit gesê, jou voorstel is nog steeds geldig en beweeg in die rigting van die kombinasie van beskikbare kas tegnieke in interessante baster oplossings. Dankie Karl Puder sê: Het julle die veld 8220data8221 hou, want dit reeds bestaan, vir verenigbaarheid met vorige weergawes, of vir 'n ander rede waarom ek dink ek sou wou hê om die inhoud vir 'n URL te gaan haal en dit in 'n beeld dadelik, want die versoek vermoedelik gebeur omdat ons nodig het om die ding op die skerm nou wys. Dit was 'n skuif van desperaatheid. My hoop is dat die ligte migrasie automagically sou migreer die oorspronklike model (url, data, tyd stempel) om die nuwe model (url, beeld, tyd stempel) met behulp van 'n kartering model wat data gekarteer - beeld. Maar dit het nie gewerk nie. So ek het die nuwe model sluit al die ou model8217s eienskappe plus 'n nuwe kenmerk, beeld. Die kartering model kaarte die ou kenmerke direk na hul eweknieë in die nuwe model en stel die nuwe beeld kenmerk tot 0 (of nul, effektief). Toe ek in kode, check ek vir 'n nul beeld waarde in die bestuur voorwerp en ek omskep in kode van die data kenmerk om die beeld kenmerk, en stel die data kenmerk tot nul. Dit is dalk nie die 8220right8221 manier waarop dit gedoen het, maar dit het gewerk. Dit is makliker as jy verhoudings vir Groot Data Objects (BLOB) gebruik. Soos met al die prestasie kwessies Ek sou raai die gebruik van die eenvoudigste metode totdat sy 'n prestasie probleem. I8217ve is baie gelukkiger wanneer ek dit kry om eerste te werk en gebruik dan profiel gedryf optimalisaties. Verder na 20 jaar van ontwikkeling, sy het ook ongelooflik hoe vinnig optimalisaties met biblioteke of OS8217s uitgediende toepassingsvlak optimalisaties. Hi Todd - Dankie vir jou kommentaar. Soos vir die gebruik van die eenvoudigste metodes Eerstens, ek is dit eens. Maar in hierdie geval, waar ek begin het met behulp van 'n NSDictionary, het ek gevind dat die lees en skryf dit 'n ware bottelnek, wat is die rede waarom ek begin kyk na CoreData. Dylan Neild sê: Ek dink die een ding in gedagte hier te bly is iCloud Friends, spesifiek as jy 'Core Data op IOS. Spesifiek, as jy die stoor van jou Core Data SQLite lêer in die Dokumente gids iCloud gaan outomaties terug te wen wanneer die gebruiker hul telefoon verbind tot krag (as hulle so ingestel). Die probleem met die stoor blob data in daardie SQLite lêer is dat hierdie enkele lêer nou groei in grootte met elke blob bygevoeg en I8217d dink iCloud sal dan weer Friends die hele lêer op sy beurt, nie Dit kan onbetaalbaar stadige / data intensiewe kry wanneer jy 'n 5KB beeld om 'n 500MB databasis beteken 'n nuwe 500MB5K Friends. Tensy Apple het 'n soort van 8220row-level8221 rugsteun strategie wanneer hulle met Core Data sqlite lêers Hulle doen roei-vlak sinchronisasie vir iCloud sync so it8217s moontlik 8211, maar ek can8217t enige verwysing na hierdie plek vind. Dylan - Jy is absoluut korrek. In die implementering van hierdie CoreData kas skema het ek uitdruklik nie die kas lêer in die / Dokumente gids vir presies die redes wat jy na vore te bring. Dit is 'n kas, na alles. So het die regte plek om die lêer te sit in / Biblioteek / skatte, sodat IOS wat ruimte kan herwin as dit moet. Daar is 'n funksie bygevoeg IOS 5.0.1 dat 'n app het 'n 8220no backup8221 bietjie op 'n lêer kan. That8217s n ander manier om die stelsel te vertel nie te back-up iets. Basies, die reël is dat indien die gebruiker die data geskep word, moet dit in besit te gaan / Dokumente. As hulle didn8217t en dit kan maklik herskep of refetched, moet dit gaan in


No comments:

Post a Comment