Hem Sociala medier Hur man använder protokoll för att definiera metoder för iOS Apps - dummies

Hur man använder protokoll för att definiera metoder för iOS Apps - dummies

Video: Learning iOS: Create your own app with Objective-C! by Tianyu Liu 2025

Video: Learning iOS: Create your own app with Objective-C! by Tianyu Liu 2025
Anonim

Ett protokoll definierar uppsättningar metoder som kan genomföras av vilken klass som helst. Tänk på protokoll som definierar gränssnitt som klasser måste genomföra. Protokoll används ofta för att ange gränssnittet för delegerade objekt.

Med protokollfunktionen kan du undvika att tvinga underklassen för att skapa polymorfa klasser. Mål-C (till skillnad från C ++) tillåter inte att en klass har flera superklasser. Protokoll är därför ett viktigt inslag i Mål-C eftersom det inte tillåter flera arv.

När en klass genomför metoderna i ett protokoll sägs klassen att överensstämma med protokollet.

Definitionen av ett protokoll liknar definitionen av ett gränssnitt för en klass. Ett protokoll har emellertid inte en föräldraklass eller instansvariabler. Här är ett exempel på en protokolldefinition (Printable) från postfix-kalkylatorns program:

@protocol Printable - (void) printMe; // Jag kan lämna ut @required, eftersom det är standard @optional - (NSString *) printMeToString; -d

Med ankomsten (och med stor fanfare) av Objective-C 2.0 kan protokollmetoder antingen vara obligatoriska (standard) eller valfritt.

Här är StackOfIntegers deklaration om att det kommer att implementera protokollet: @interface StackOfInteger: NSObject … -d

Här är implementeringen av protokollet i StackOfInteger-klassen:

@implementation StackOfInteger; … Andra StackOfInteger metoder … /////////// Metoder för att genomföra det skrivbara protokollet //////////// - (void) printMe {int k, stackCount = [elementantal]; NSLog (@ "Stack-> Last>% dlast); för (k = 0; k% @ 

Observera att metoden printMeToString inte implementeras eftersom den är valfri.

< ! - 1 ->

Ett program kan testa om ett objekt överensstämmer med ett protokoll. Följande kod innehåller exempel på detta test (taget från provprogrammets huvudprogram):

printf ("Testa överensstämmelse med protokollsn "), om ([myStack conformsToProtocol: @protocol (Printable)]) {printf (" Använd protokoll methodsn "); [myStack printMe];} else {NSLog (@" Objektet överensstämmer inte med protokollet% @ n " @protocol (Utskrivbar));} id someObject = [[PostfixCalculator allokera initWithExpression: @ "44 55 *"]; om (! [someObject conformsToProtocol: @protocol (Utskrivbar)]) {NSLog (@ "Objektet överensstämmer inte med protokollet ");}

Eftersom myStack-objektet överensstämmer med protokollet kallas dess metoder för printMe och printMeToString. Eftersom someObject (vilket är typ-ID för att göra exemplet mer meningsfullt) inte överensstämmer med det skrivbara protokollet, testet för överensstämmelse misslyckas.

Du kan också testa om det finns en valfri metod som använder metoden RespondToSelector.

Du kan göra en klass anta ett protokoll genom att helt enkelt genomföra de metoder som definieras av det protokollet. Det betyder att du inte måste förklara protokollet i dess gränssnitt. Men även om klassen implementerar protokollmetoderna kommer det inte att överensstämma med protokollet och misslyckas med det föregående konformitetsprovet.

Hur man använder protokoll för att definiera metoder för iOS Apps - dummies

Redaktörens val

Hur man lägger till bilder från Photoshop Elements 11 Innehållspanel - dummies

Hur man lägger till bilder från Photoshop Elements 11 Innehållspanel - dummies

Om du är " t den konstnärliga typen eller behöver en snabb grafik i en nypa, kolla in Innehållspanelen i Photoshop Elements 11, som delar ett mellanslag med Effektpanelen. Så här lägger du till en grafik från Innehållspanelen: I Photo Editor väljer du Fönster → Grafik i Expertläget. I grafikpanelen, från ...

Lära känna Photoshop Elements 10 Organizer Window - dummies

Lära känna Photoshop Elements 10 Organizer Window - dummies

För att börja använda Photoshop Elements 10, du behöver en övergripande vy av arrangören och de olika paneler som är associerade med den. Här är en glimt av Arrangörs arbetsytan. De olika objekten i arrangören inkluderar följande: Menyrad, A. Menyerna för organiseraren visas i det övre vänstra avsnittet i menyraden. På Windows, ...

Hur man lägger till filer från mappar och flyttbara media till Photoshop Elements 12 - dummies

Hur man lägger till filer från mappar och flyttbara media till Photoshop Elements 12 - dummies

Om du vill redigera foton i Photoshop Elements måste du importera dem till Photoshop Elements Organizer. De flesta har bilder på datorns hårddisk, liksom på flyttbara medier, som cd-skivor eller kanske till och med en USB-flash-enhet. Att lägga till bilder från hårddisken är lätt. Om du har en sådan källa ...

Redaktörens val

Hur man arbetar med egenskapspanelen i Photoshop CS6-dummies

Hur man arbetar med egenskapspanelen i Photoshop CS6-dummies

Adobe axed den kortlivade , fristående maskeringspanel i Photoshop CS6 till förmån för panelen Egenskaper, som nu innehåller funktionerna i maskerna och justeringar. Inga bekymmer, dock. Ingen av de funktioner som tidigare tillhandahållits av panelen Masks förlorades. I den nya panelen Egenskaper kan du lägga till, redigera och hantera ditt lager, ...

Hur man arbetar med försvinnande punkt i Photoshop CS6 - dummies

Hur man arbetar med försvinnande punkt i Photoshop CS6 - dummies

Gör kommandot Vanishing Point i Photoshop CS6 möjlig du ska göra realistiska ändringar i bilder som har perspektivplan. Med Vanishing Point anger du planen i dina bilder och sedan, med hjälp av en rad olika tekniker, lägger du till eller eliminerar objekt på dessa plan. Öppna en bild som behöver redigera. Om du behöver klistra in ...

Gör Freeform Selections i Photoshop CS5 - dummies

Gör Freeform Selections i Photoshop CS5 - dummies

I Photoshop Creative Suites 5, Lasso-verktyget används för att skapa freeform val (val av oregelbunden form). För att använda Lasso-verktyget drar du bara och skapar en sökväg som omger området som ska väljas. Om du inte återgår till startpunkten för att stänga valet innan du släpper musknappen, Photoshop ...

Redaktörens val

Nätverksadministration: Subnet Masks - dummies

Nätverksadministration: Subnet Masks - dummies

För subnetting till arbete måste routern få veta vilken del av värd-ID bör användas för subnätverks-ID. Den här lilla handen är uppnådd genom att använda ett annat 32-bitars nummer, känd som en subnätmask. De IP-adressbitar som representerar nätverks-ID representeras av en 1 i ...

Nätverksadministration: SQL Server Table Creation - dummies

Nätverksadministration: SQL Server Table Creation - dummies

Det viktigaste av de möjliga databasobjekten är tabellerna, vilka innehåller de faktiska data som utgör databasen. En databas är inte särskilt användbar utan minst en tabell. De flesta verkliga databaser har mer än ett bord - faktiskt har många databaser dussintals tabeller. För att skapa ett bord, följ dessa steg: ...

Nätverksadministration: Undernätöversikt - dummies

Nätverksadministration: Undernätöversikt - dummies

Subnetting är en teknik som låter nätverksadministratörer använda 32 bitar tillgängliga i en IP adressera mer effektivt genom att skapa nätverk som inte är begränsade till de vågar som tillhandahålls av klass A, B och C IP-adresser. Med subnetting kan du skapa nätverk med mer realistiska värdgränser. Subnetting ger ett mer flexibelt sätt att ...