Huis Sociale Media Basisprincipes van protocollen in iOS-apps - dummies

Basisprincipes van protocollen in iOS-apps - dummies

Video: iOS Swift Basics Tutorial: Protocols and Delegates 2024

Video: iOS Swift Basics Tutorial: Protocols and Delegates 2024
Anonim

Per definitie verduidelijkt een protocol reeksen methoden die door elke klasse voor een iOS-app kunnen worden geïmplementeerd. Protocollen worden gebruikt om interfaces te definiëren die door klassen worden geïmplementeerd. Protocollen worden vaak gebruikt om de interface voor gemachtigde objecten te specificeren. Met de protocolfunctie kunt u voorkomen dat subklassen moet worden geforceerd om polymorfe klassen te maken.

Objective-C (in tegenstelling tot C ++) staat niet toe dat een klasse meerdere superklassen heeft. Protocollen zijn daarom een ​​essentieel kenmerk in Objective-C, omdat er geen sprake is van meerdere overerving.

Wanneer een klasse de methoden implementeert in een protocol, wordt gezegd dat de klasse conform is voor het protocol.

De definitie van een protocol lijkt op de definitie van een interface voor een klasse. Een protocol heeft echter geen bovenliggende klasse- of instantievariabelen. Hier is een voorbeeld van een protocoldefinitie (afdrukbaar) van het postfix-rekenmachineprogramma:

@protocol afdrukbaar - (ongeldig) printMe; // Ik kan @required weglaten, omdat dit de standaard @optional - (NSString *) printMeToString is; -d Met de komst (en inderdaad met veel tamtam) van Objective-C 2. 0 kunnen protocolmethoden vereist zijn (standaard) of optioneel. Merk op dat de compilerrichtlijnen hier ook zijn.

Hier is de verklaring van het StackOfInteger dat het protocol wordt geïmplementeerd:

@interface StackOfInteger: NSObject … -d

Dit is de implementatie van het protocol in de klasse StackOfInteger:

@ implementatie StackOfInteger; … Andere StackOfInteger-methoden … /////////// Methoden voor het implementeren van het afdrukbare protocol //////////// - (void) printMe {int k, stackCount = [aantal elementen]; NSLog (@ "Stack-> Last>% dlast); for (k = 0; k% @

Merk op dat de methode printMeToString niet is geïmplementeerd omdat deze optioneel is. 

< ! --1 ->

Een programma kan testen of een object voldoet aan een protocol De volgende code bevat voorbeelden van deze test (uit het hoofdprogramma van het monster):

printf ("Testen conformiteit met protocolsn "); if ([myStack conformToProtocol: @protocol (Printable)]) {printf (" Using protocol methodsn "); [myStack printMe];} else {NSLog (@" Object voldoet niet aan protocol% @ n ", @protocol (afdrukbaar));} id someObject = [[PostfixCalculator alloc] initWithExpression: @ "44 55 *"]; if (! [someObject conformToProtocol: @protocol (Printable)]) {NSLog (@ "Object voldoet niet aan protocol ");}

Omdat het myStack-object overeenkomt met het protocol, worden de methoden printMe en printMeToString aangeroepen.Aangezien someObject (wat type-id is om het voorbeeld zinvoller te maken) niet conform is aan het afdrukbare protocol, mislukt de conformiteitstest.

Je kunt ook testen of er een optionele methode bestaat met de methode respondsToSelector.

U kunt van een klasse een protocol maken door eenvoudig de methoden te implementeren die door dat protocol zijn gedefinieerd. Dat wil zeggen, u hoeft het protocol niet in zijn interface aan te geven. Hoewel de klasse de protocollen implementeert, zal

niet zich conformeren aan het protocol en zal de vorige conformantietest mislukken.

Basisprincipes van protocollen in iOS-apps - dummies

Bewerkers keuze

 Planning vooruit met Excel 2007's VANDAAG, DATUM, en DATUMWAARDE Functies

Planning vooruit met Excel 2007's VANDAAG, DATUM, en DATUMWAARDE Functies

Excel 2007 bevat een aantal ingebouwde datumfuncties die u in uw werkbladen kunt gebruiken. Drie veelgebruikte datumfuncties zijn VANDAAG, DATUM en DATUMWAARDE en ze kunnen erg handig zijn als u een planning in Excel probeert te maken. VANDAAG De eenvoudigste en meest gebruikte datumfunctie moet VANDAAG zijn. Deze ...

Van tevoren plannen met Excel 2010's VANDAAG, DATUM en DATUMWAARDE Functies - dummies

Van tevoren plannen met Excel 2010's VANDAAG, DATUM en DATUMWAARDE Functies - dummies

Excel 2010 bevat een aantal ingebouwde datumfuncties die u in uw werkbladen kunt gebruiken. Drie veelgebruikte datumfuncties zijn VANDAAG, DATUM en DATUMWAARDE en ze kunnen erg handig zijn als u een planning in Excel probeert te maken. VANDAAG De eenvoudigste en meest gebruikte datumfunctie moet VANDAAG zijn. Deze ...

Parsing geeft de naam van de VBA-weg - dummies

Parsing geeft de naam van de VBA-weg - dummies

Hebt u ooit een Excel-werkblad met namen gekregen, waarin de volledige namen staan bevinden ze zich allemaal in één cel? Uw taak is om de namen te breken in voornaam, achternaam - een proces dat bekend staat als parsing. U kunt proberen een formule en / of functie te gebruiken, of u kunt Visual Basic gebruiken voor ...

Bewerkers keuze

Basisbeginselen van Xcode-werkruimte voor iOS-apps - dummies

Basisbeginselen van Xcode-werkruimte voor iOS-apps - dummies

De toepassingswerkruimte in Xcode is waar jij ' Ik doe het grootste deel van je werk voor het maken van iOS-apps. Deze werkruimte is onderverdeeld in vier gebieden: de Navigator, de Editor, de Utility en de Debug. Navigatorgebied Het Navigator-gebied bestaat uit een verzameling navigators waarmee u elk een ander aspect van ...

Basisprincipes van protocollen in iOS-apps - dummies

Basisprincipes van protocollen in iOS-apps - dummies

Per definitie verduidelijkt een protocol sets van methoden die kunnen worden gebruikt geïmplementeerd door elke klasse voor een iOS-app. Protocollen worden gebruikt om interfaces te definiëren die door klassen worden geïmplementeerd. Protocollen worden vaak gebruikt om de interface voor gemachtigde objecten te specificeren. Met de protocolfunctie kunt u voorkomen dat subklassen moet worden geforceerd om ...

Bouw een app in Xcode - dummies

Bouw een app in Xcode - dummies

Bouw een app in Xcode betekent het compileren van alle broncodebestanden in het project. Het is echt spannend om te zien wat u krijgt als u een project bouwt en uitvoert dat u vanuit een sjabloon hebt gemaakt. Het bouwen en uitvoeren van een app is relatief eenvoudig; volg gewoon deze stappen: In de Flow Controls-sectie van de ...

Bewerkers keuze

Hoe u Words to Dragon Professional Individual toevoegt uit Somebody Else's Documents - dummies

Hoe u Words to Dragon Professional Individual toevoegt uit Somebody Else's Documents - dummies

Normaal, u gebruikt uw eigen documenten om Dragon Professional Individual te leren over uw vocabulaire. Wat kun je echter doen voor een onderwerp waar je niet veel over hebt geschreven? Antwoord: Grijp woorden van documenten die andere mensen hebben geschreven. Het web staat bijvoorbeeld vol met documenten over bijna elk onderwerp dat u kunt noemen. De truc ...

Woorden uit specifieke documenten toevoegen aan NaturallySpeaking - dummies

Woorden uit specifieke documenten toevoegen aan NaturallySpeaking - dummies

Nadat u de basis hebt, u kunt uw NaturallySpeaking-assistent voorzien van documenten zodat deze ernaar kan kijken en woorden of hoofdgedeelten kan uitzoeken die het niet herkent. Hoe meer documenten u Vocabulary Builder geeft, hoe beter. Geef het in het bijzonder documenten die lijken op de documenten die u wilt dicteren - uw ...

Hoe u snelkoppelingen toevoegt in de spraakbibliotheek-editor van NaturallySpeaking - dummies

Hoe u snelkoppelingen toevoegt in de spraakbibliotheek-editor van NaturallySpeaking - dummies

Om aangepaste termen toe te voegen aan de actieve vocabulaire van NaturallySpeaking, Klik op de koppeling Open de woordenlijsteditor in het Nauwkeurigheidscentrum (of u kunt de woordenlijsteditor starten door Woordenschat → Woordenlijsteditor in het DragonBar-menu te kiezen of de opdrachten te spreken). Voer vervolgens de volgende stappen uit: