SWIFT heeft gestart en zullen de vergunning:

, snel uit de nul gestart en - licenties,,,,,,,,,, 31, onderdeel 4,,,,,,, de delen van het netwerk, maandag wat in tuts + koers zal dalen tot slechts drie dollar.Niet' dit artikel niet missen, is een serie snelle vanaf het begin deel uit. SWIFT: controle op de toegang tot en de prestaties van de waarnemer, in de vorige aflevering van SWIFT vanaf nul beginnen, creëren we een functie van de lijst van toepassing is.Data model wat liefde kan gebruiken.In deze handleiding zullen wij de wederopbouw van gegevens door de uitvoering van een speciaal model model.,, 1.   data model, met inbegrip van ons model voor de uitvoering van de gegevens, de twee categorieën, de taken, de en de,, klasse, de taak.Hoewel we creëren en de verwezenlijking van deze modellen, wij blijven ons onderzoek, gerichte programma 's snel.In deze handleiding zullen wij in het starten van klasse en wat de rol van de erfenis van de in het eerste proces ", de taken, de klasse, laten we beginnen met de uitvoering van taken, klasse.Door de keuze van het creëren van een nieuw document   snel nieuwe > documenten... Van de   aanvragen, de file menu.De keuze van de documenten van  , snel,  , 108 > bron.   genoemd document  , task.swift,  , gecreëerd.,,,,, dat is heel eenvoudig.De  , de taken, de   NSObject erfenis van  , in het kader van de,,,   met variabele eigenschappen, de naam,    , touw,.De definitie van de twee gestart,   ervan,   en   ervan (:).Een paar details, zou je liet vallen, laat het me uitleggen wat er gebeurd is, de invoer van een basisopleiding., de taak van de NSObject {var: naam: string aan ondernemers () {gemakkelijk zelf. (naam: "de nieuwe taak van de ondernemers (")} {}) naam:...), self.name = naam. Omdat ervan methode ook in, NSObject, omschreven categorieën van, we moeten het prefix gestart, herschrijven, wachtwoord.We herschrijven van deze reeks in de methoden voor.  , start, methoden, gebruiken we   ervan (naam,  :), en door middel van, "de nieuwe taak van de naam", wat betreft de waarde van de,,.,,, (naam), een andere methode is gestart, de Aanvaarding van een parameter  , de naam, het type, het touw.In deze eerste waarde, waarden, de naam, de parameters worden toegewezen aan, de naam, de   eigendom.Het is gemakkelijk te begrijpen.Is?,,   aangewezen en ter vergemakkelijking van   gestart, en wat is het sleutelwoord, handig, kengetal, erin?Er zijn twee soorten klassen kan starten, starten en starten de vergemakkelijking van de aangewezen.Handig voor de gestart zijn, gemakkelijk, wachtwoord, hetgeen betekent dat de ondernemers (naam:), is een aangewezen gestart.Waarom is dit zo?De aangewezen - en vergemakkelijking van het verschil tussen ons is?,,, de oorspronkelijke waarde toegekend, volledig zullen een voorbeeld van een klasse, dat wil zeggen na het starten van de aanleg van elk van de eigenschappen van de oorspronkelijke waarde.Kijk, de taak, zoals we zagen, de naam, de eigendom van de waarde, de naam van de   parameters, starten, starten (:).Na de inleiding van het resultaat is van een volledige starten, taken, zoals het.,,, te starten, maar op basis van een fabrikant voor de totstandbrenging van een volledig - klasse.Dit is de reden waarom, starten, starten, de taken, de klasse noemen ervan (naam), onder de toepassing van gestart.Het is heet - missie.  starten, starten, starten naar een aangewezen vertegenwoordiger van de initiële waarde van de post het creëren van een volledige - voorbeelden van taken, te starten., is facultatief.Niet iedereen heeft een handige gestart.De aangewezen - nodig is, een verbod moet ten minste één fabrikant voor het creëren van een volledige starten voorbeelden, nscoding, de overeenkomst zelf.,,,, de uitvoering van het mandaat van de klas is niet volledig, hoewel.Later in dit artikel, schrijven we onze achterstand,   inval, bijvoorbeeld.Als de omstandigheden is dit de enige mogelijke,   kan coderen en decoderen, maar maak je geen zorgen, het is geen raketwetenschap.   maar we moeten het wel, de taken, de TODO, in overeenstemming is met de overeenkomst, nscoding,.Dit is waarom, de taken, de klasse NSObject categorie vormen, omdat de overeenkomst alleen, nscoding, door middel van klasse NSObject direct of indirect te bereiken,.Zoals, NSObject klasse, nscoding, overeenkomst, op basis van de definitie van,,, in het kader van de overeenkomst is. We hebben in deze reeks, maar een paar vragen, zou ik erop willen wijzen dat.Laten we de samensteller taak beginnen, in overeenstemming is met de overeenkomst, nscoding,.,,, de taak: NSObject, nscoding {naam: touw...},, dan moeten we de twee methoden voor de uitvoering van de overeenkomst, nscoding,,   aangekondigd dat ondernemers (code encodewithcoder (:), en _:), dat is simpel.  , als je bekend voor, nscoding, overeenkomst, de invoer op basis van taken: NSObject, nscoding (variabele naam: string @ objc eisen ervan (koffie adecoder:NSCoder) {naam = adecoder. Decodeobjectforkey ("naam").String} @ objc functie encodewithcoder (encoder: NSCoder {-). Encodeobject (naam, de belangrijkste: "de naam" () {}) ter vergemakkelijking van de ondernemers (overstijgen. Titel: "de nieuwe taak van de ondernemers (")} {}) naam: (...) self.name = naam,,,, - is ervan (-) een aangewezen starten, starten, speciale gevallen.Zelfs als we de uitvoering ervan (-), in overeenstemming met de overeenkomst, nscoding, de methode, moet je niet rechtstreeks op grond van deze methode.Ook is het zo dat de encodewithcoder (_:), het mandaat, de aanleg van klasse codering,.,,,, wachtwoord prefix ervan (-), waaruit blijkt dat de methode van categorieën, elk soort mandaat nodig is, voor de toepassing van deze methode., noodzakelijk, het sleutelwoord is alleen van toepassing op de oorspronkelijke waarde, en dat is de reden waarom we niet hoeven toe te voegen, encodewithcoder (_:),., voordat we verder gaan, we moeten praten, @ objc eigenschap.Omdat, nscoding C, de overeenkomst is een overeenkomst van de samenhang, alleen maar toe te voegen, @ objc eigenschap.Snel, er bestaat niet zoiets als een overeenkomst of de samenhang van het facultatief protocol.Met andere woorden, als een verbod op een specifieke overeenkomst, en ik hoop dat de uitvoering van het Protocol van de validering van methoden,,,., en, de taken, de uitvoering, de tijd om te beseffen dat, todo, klas.Het creëren van een nieuwe snelle naam, Todo. SWIFT.   laten we zien, doen, om de invoer op basis van klasse, klasse. En TODO: de taak van {var:bool @ objc eisen ervan (koffie adecoder:NSCoder) {self.done = adecoder. Decodeobjectforkey ("").布尔特. De ondernemers (code: adecoder)} @ objc herschrijven. Encodewithcoder (encoder: NSCoder {-). Encodeobject (voltooid, met de nadruk op: "gedaan"). Encodewithcoder (encoder)} ervan (naam: string: bool) {self.done = super. Ondernemers (naam: naam)}},,,,, de erfenis, taken, en   verklaring van een variabele eigenschappen, het type, de bool,.Naast de twee de vereiste methoden, nscoding van de overeenkomst, de taken, de erfenis, het verklaart ook een bepaalde starten, starten (:),,,,, in de C - en, wachtwoord: subklassen van de missie, in dit geval.Er is een belangrijke details te letten.In je ervan (naam:), de moedermaatschappij methode, elke eigenschap, te doen staat, moet worden gestart.Met andere woorden, voor een klas - vertegenwoordigers, per eigenschap, doen,   dergelijke verklaringen, de noodzaak van een doeltreffende initiële waarde.Kun je controleren of de volgorde van de verklaring door de schakelaar - en fouten controleren.,,,,, is eveneens van toepassing op de ondernemers (koffie, methode).We starten, klaar voor het oproepen van de ondernemers (eigenschap, koffie), in de klasse.Dat we de resultaten van de frustratie en openbreken, decodeobjectforkey (_:), een  , boolean,   gebruik, zoals!,,,,, - en die in de erfenis en gestart, er zijn regels in het oog te houden.De regels zijn simpel aangewezen gestart.,,, een   aangewezen - bel de ouders van de fabrikant nodig.In de categorie ", doen, bijvoorbeeld,   ervan (code:),   methode ervan (code:), waarvan de moedermaatschappij methode.Het is ook bekend als, de benoeming van,,,,, en - de regels een beetje ingewikkelder.Er zijn twee regels in gedachten te houden.   gestart, te vergemakkelijken, moet altijd een andere definitie van een eerste klasse.In de categorie, taken, bijvoorbeeld, is een methode te starten, starten en het starten van een andere vertegenwoordiger starten, starten (naam:),   voorbeeld.Het is bekend, gemachtigde, zelfs als een handig starten is niet noodzakelijkerwijs de vastgestelde procedures starten, starten moet gemakkelijk een bel van een aangewezen gestart.Dit is volledig moet worden gestart en de initialisatie.,, model te bereiken, het is tijd om de wederopbouw, en, additemviewcontroller, klasse.Laten we beginnen aan de achterkant, 2.De wederopbouw van  , additemviewcontroller,, stap 1: bijgewerkt, additemviewcontrollerdelegate, overeenkomst, de enige verandering is nodig om ons in  , additemviewcontroller, klas van de  , additemviewcontrollerdelegate in verband met de overeenkomst.In de verklaring van overeenstemming en de wijzigingen van type, didadditem, touw, Todo, bereiken we de eerste klasse, overeenkomst, model, additemviewcontrollerdelegate {functie verantwoordelijke (de verantwoordelijke voor de verwerking: additemviewcontroller, didadditem:TODO)}, stap 2: bijwerking, de creativiteit, de actie, dat betekent dat we tot actie moeten ook worden bijgewerkt, en we bellen. De voornaamste methode.De uitvoering van de in de actualisering, creëren we een voorbeeld, doen, het doorgeven aan de Commissie van de methode. Ibaction functie te creëren (,, @ afzender: een object) {naam = self.textfield.text laten dat projecten = TODO (naam: naam: valse) als vertegenwoordiger van de vertegenwoordigers van self.delegate laten = {. De verantwoordelijke voor de verwerking (zelf, didadditem: - project)}},, 3.De verantwoordelijke voor de wederopbouw,,,, stap 1: bijwerking, voorwerpen, goederen,,, klas van mening, heeft nog een beetje werk nodig.We moeten van het type, voorwerpen, goederen, [doen], voor  , Todo, een voorbeeld van de generator, [doen].,. Project: = [...] (didset {laat hasitems = items.count > self.tableview.hidden = 0.Hasitems self.messagelabel.hidden = hasitems}}, stap 2: Overzichtstabel bron van gegevens. Dit betekent ook dat we de behoeften voor de wederopbouw van een aantal andere methoden, zoals de  , (_ cellForRowAtIndexPath methoden), zoals hieronder vermeld.Omdat, goederen, array bevat, onderzoeken, de omstandigheden, als een project voor de doen is veel eenvoudiger.We gebruiken drie exploitanten van SWIFT actualisering van mening van de bijlage vormen de cel.,, tableview (TableView:UITableView, cellForRowAtIndexPath indexpath:nsindexpath) - > UITableViewCell (///////de projecten om de projecten = zelf. Het project [] indexpath. ///////lijst van mening dat tableviewcell = tableview. cellen dequeuereusablecellwithidentifier ("tableviewcell", forindexpath:indexpath).UITableViewCell /toewijzing van tableviewcell.textlabel schijnbare cellen?= = = = = = = item.done. De tekst item.name tableviewcell.accessorytype?Terug naar de tableviewcell}. Etikettering:.,, als de gebruiker het schrappen van een project, maar we moeten worden bijgewerkt, door het wegnemen van de projecten, de onroerend goed, bijvoorbeeld.Dit is ook in de uitvoering van   tableview (_:commiteditingstyle:forrowatindexpath:), zoals hieronder aangegeven.,, functionele tableview (TableView:UITableView, commiteditingstyle editingstyle:uitableviewcelleditingstyle, forrowatindexpath indexpath: nsindexpath) (als editingstyle = =. Het schrappen van de projecten om de projecten (///////= zelf. Het project [] indexpath. ///////actualisering van het programma zelf. Projecten. Removeatindex (indexpath.) /staat zelf. Saveitems () /actualisering van schijnbare tableview. deleterowsatindexpaths ([indexpath], withrowanimation:uitableviewrowanimation. Rechts)}}, stap 3: het schijnbare vertegenwoordiger van het amendement van de staat als gebruikers,Klik op de behandeling, tableview (_:didselectrowatindexpath:),   methode.Op deze manier, de uitvoering van uitableviewdelegate, bedanken voor de   is heel eenvoudig, Todo,  .,, de functie tableview (TableView:UITableView, didselectrowatindexpath indexpath:nsindexpath) {tableview. deselectrowatindexpath (indexpath, animatie: voor projecten om de projecten echt) /= zelfstandige projecten []. ///////indexpath halen. De schijnbare cel laten tableviewcell = tableview. cellForRowAtIndexPath (indexpath) /actualisering van het programma item.done =!Item.done /actualisering van de schijnbare cellen tableviewcell?. accessorytype = item.done?. Etikettering: ///////redden. Zonder staat zelf. Saveitems ()), en, dienovereenkomstig, het doen, zoals bijgewerkt. Deze wijziging is door de schijnbare.Om het land te redden, we bellen, saveitems, in plaats van, savecheckeditems,.,, 4:   aan de post - oog voor de aangewezen methode, omdat we opnieuw, additemviewcontrollerdelegate, overeenkomst, we moeten ook worden bijgewerkt, oog voor de verwerking, de tenuitvoerlegging van de overeenkomst.Maar verandering is simpel.We moeten alleen de methode voor de aanpassing van de functie van controleur ondertekend, (de verantwoordelijke voor de verwerking: additemviewcontroller, didadditem:TODO) {///////bijwerking van de gegevens zelf. Het project. Aanvullende (didadditem) /red /- staat zelf. Saveitems () schijnbare zelf. Tableview. reloaddata () /afgewezen projecten toe te voegen aan de oog voor de dismissviewcontrolleranimated (zelf. Echt.: geen)}, stap 5: projecten voor energiebesparing,,,,, pathforitems, in plaats van op de gebruiker een systeemgekozen gegevensbank opgeslagen in project, zullen we ze opslaan in de toepassing van de inhoud van de documenten.We werken, loaditems saveitems,,, voor, moeten we ons realiseren dat de naam van een  , pathforitems,.Het is privé, terug naar de weg, in het dossier van de positie van een privé - functie,., pathforitems () - > snaren {laat documentsdirectory = nssearchpathfordirectoriesindomains (. Documentdirectory,. Userdomainmask, echt). De eerste.Documentsdirectory string. Stringbyappendingpathcomponent ("project")}, eerst de weg, in de aanvraag door een beroep te doen op de   zandbak catalogus van de documenten, nssearchpathfordirectoriesindomains (_:_:_:).Omdat deze methode   de terugkeer van een reeks verplichtingen, we hebben de kracht van de in de eerste alinea, open en depressief genoeg  , string.De waarde van onze pathforitems, door de weg terug, de catalogus van de documenten van reeks, "project" toe te voegen aan het loaditems.,,,,,, voor de loaditems veranderd.Onze eerste winkel, de resultaten van de in de nomenclatuur pathforitems, constante, weg.En dan gaan we decompressie object archief weg   en een facultatieve installatie, het valt, bijvoorbeeld.We gebruiken de combinatie van facultatieve opties open en toe te wijzen aan de constanten, project.   in, als de voorwaarden worden opgeslagen in de  , de waarde van de goederen, goederen, goederen, privé - functie, loaditems () {laat het pad = zelf. Pathforitems () als dat project nskeyedunarchiver unarchiveobjectwithfile (=. Weg was?[doen] {self.items = project}},,,,, saveitems saveitems, de methode is heel eenvoudig.   onze winkel  , resultaten pathforitems,   in constante   weg,   genoemd, en roept  , archiverootobject (_: documenten:),,, nskeyedarchiver langs, voorwerpen, goederen, en weg.We drukken op de exploitatie van de resultaten van de console, de functie, het particuliere saveitems () {laat het pad = zelf. Pathforitems () als nskeyedarchiver. Archiverootobject (self.items, ingesteld: pad) {leegte fac ("red")} {leegte fac ("of behoud van mislukking")}}, schoonmaken, stap 6:,, dat is een deel van de lol, het schrappen van de code.Checkeditems te verwijderen, omdat we niet langer nodig op de Top van het onroerend goed.Als een resultaat, kunnen we ook geschrapt, loadcheckeditems, savecheckeditems, methoden, en voor elke in een verwijzing naar deze methode, controleur,.,, de oprichting en exploitatie van kijken of alles is nog steeds van toepassing.Het model van de code voor de toepassing van deze gegevens om een eenvoudiger, meer betrouwbaar.Bedankt, Todo, klasse, het beheer van onze lijst is nu veel gemakkelijker en minder fouten, de conclusies van de projecten,. In deze handleiding voor de opzet van ons, hebben we de gegevens van de toepassing van de modellen.Je leert meer over gerichte programma 's en de erfenis.Aanleg is een belangrijk concept, dus zorg ervoor dat je weet dat we in deze handleiding bestreken.Je kunt meer lezen over de missie - en   SWIFT - taal.





Previous:
Next Page: