tidigare i år presenterade Apple-chefer Swift, vilket är tänkt att så småningom ersätta Objective-C som det programmeringsspråk som valts för Mac och iOS-enheter. Medan Objective-C fortfarande är populärt klagar utvecklare ofta på hur svårt det är att använda; Swifts funktioner kommer förmodligen att eliminera åtminstone några av dessa problem.
trots användarvänligheten måste utvecklare fortfarande spendera lite tid på att lära sig hur språket fungerar. Detta är den första av några artiklar som visar hur man programmerar iOS-appar med Swift.
Klicka här för att hitta snabba utvecklingsjobb.
förutsättningar
du behöver en Mac som kan köra OS X Mavericks. I skrivande stund kan du bara programmera i Swift om du är en registrerad iOS-utvecklare. För att utveckla och köra Swift-appar bör du ha iOS 8 och version 6 av Apples IDE Xcode. (Du måste vara en registrerad utvecklare för att testa dina Swift-appar på din iPhone, även om du inte behöver vara en för att skapa och köra samma appar på en iPhone-eller iPad-emulator.)
för denna handledning använder jag en betaversion av XCode 6 (när detta skrivs, nu upp till GM-frö). Innan vi börjar, ladda ner projektfilerna och (om du är en registrerad Apple-utvecklare med den senaste Xcode beta) installera dem. Därefter öppnar du projektfilerna och laddar dem i Xcode.
Vad finns i en Swift-App?
för att bygga en Swift-app skapar du först ett Xcode-projekt och väljer Swift som språk. Efter att ha fyllt i några detaljer kommer programvaran att skapa ett projekt som jag i mitt fall namngav FirstExample. Den kommer att innehålla två källkodsfiler att starta, samt två info.plist-filer som innehåller information om din App och en storyboard-fil (som vi inte behöver för det här exemplet).
dessa tillgångar är det minsta du behöver en bygga en app kan köra. Men om du kör det i början får du bara en tom skärm—du måste lägga till mer kod för att få det att göra någonting. Vi kommer till den delen snart.
Ladda upp ditt CV. arbetsgivare vill ha kandidater som du. Ladda upp ditt CV. Visa dem att du är fantastisk.
andra förberedelser
om du följer med och har skapat en ny app kommer det att finnas en Huvud.storyboard-fil i listan projektfiler. Ta bort den och redigera informationen.plist-fil. Ta bort nyckeln som börjar med, ”Huvud storyboards filnamn.”
de två källkodsfilerna är AppDelegate.swift och ViewController.Snabb. I iOS är en delegat en klass som gör något på uppdrag av en annan klass, och AppDelegate är en plats att hantera speciella uiapplication-stater. Den har en massa funktioner som kallas av iOS. Till exempel, om din App används och telefonen ringer, då funktionen applicationWillResignActive kommer att kallas. Det är här du ska pausa uppgifter, inaktivera timers etc.
Här är en lista över funktioner som stubbed i AppDelegate.Snabb. Om din applikation stöder bakgrundsbehandling, kallas applicationDidEnterBackground, annars kommer applicationWillTerminate. Dessa funktioner är platser att lägga till kod för att spara data, men vi kommer bara att använda den första:
func applicationWillResignActive(application: UIApplication)
func applicationDidEnterBackground(application: UIApplication)
func applicationWillEnterForeground(application: UIApplication)
Func applicationdidbecomeactive(application: uiapplication)
Func applicationwillterminate(application: uiapplication)
om den första funktionsdefinitionen har nsobject: anyobject, ändra den så att den läser Nsobject: nsdictionary. Det här är den funktion som vi behöver lägga till kod till; det är där allt börjar. -> Bool betyder att det returnerar ett bool-värde, dvs sant eller falskt. Om något går fel i din kod när appen startar kommer den att returnera” false ” (men i vårt fall kommer den alltid att returnera true).
lägga till kod till AppDelegate.swift
detta är vad hela AppDelegate.swift-filen ska se ut. Jag har tagit bort kommentarer för att hålla det kort:
i Swift skapar du en instans av en klass så här: window = UIWindow( .. ) för att skapa en instans av UIWindow. Detta är bara en parameter som skickas in, och den heter ram med värdet UIScreen.mainScreen ().Bounds, som anger storleken på hela skärmen. Observera att fönster definieras i klassen som UIWindow?. Frågetecknet betyder att det är en valfri typ och att värdet kan vara frånvarande eller närvarande; Detta liknar ett nollvärde på andra språk, men det fungerar för alla typer, inte bara klasser.
if let window = kontrollerar att fönstret finns och tar bort fönstret (vilket är av typen UIWindow?) så att UIWindow egenskaper och metoder kan användas. Försök kommentera raden” om låt ”och motsvarande”} ” (med //), och du får tre liknande kompileringsfel, med den första som säger att backgroundColor inte är medlem i UIWindow? Det är medlem i UIWindow, så att komma från UIWindow? Till UIWindow, det behöver packa upp; lägg till en ”!”i slutet av variabelnamnet för att packa upp det (fönster!.backgroundColor = kommer att fungera). Med det sagt, utan uppackning som tillhandahålls av” om Låt”, varje fönster.referens i blocket skulle också behöva vara fönster!. ”Om Låt” gör alla tre unwraps.
raderna i det uttalandet ställer in ViewController som root view controller, som är den första som skapats. Visningskontrollerna du implementerar styr hela appens navigering. Apples om View Controllers är väl värt att läsa om du vill förstå hela konceptet; men i det här fallet täcker vi bara ett exempel. Men vad gör en view controller exakt?
Vad är en View Controller?
en iOS-enhets skärmområde hanteras av en eller flera vykontroller, som används både för att navigera mellan formulär och för att hantera vyer på ett visst formulär. En vy är en instans av en UIView eller en underklass av en UIView och hanterar ett rektangulärt område på formuläret. Om formuläret motsvarar ett tegel-och murbrukskontor, skulle formvykontrollerna vara cheferna på det kontoret, och vyerna är de anställda som faktiskt utför arbetet.
varje formulär i en app hanteras av en och (ibland fler) visningskontroller. Om ett formulär har en fast del och en rullningsdel kan du använda en annan vykontroll för varje del.
i den här appen finns det en vykontroll för kontrollerna och en som hanterar popup-varningen när du klickar på knappen.
huvudvynskontrollen i min app har en vy som består av en etikett (UILabel), en textredigeringsruta (UITextField) och en knapp (UIButton). När du kör appen skriver du in lite text i textredigeringsrutan och klickar sedan på knappen. Detta kommer att dyka upp ett varningsmeddelande som visar texten du skrev:
Du kan också visuellt utforma användarflödet genom din app med storyboards, som är beroende av mindre kod och hjälper till att eliminera fel som du skulle få med att manuellt hantera visningskontroller i kod. I det här exemplet skapas dock allt i kod i ViewController.Snabb.
Views och View Controllers
varje view controller har en vy egenskap som är en samling av UIViews. Kontrollerna som du placerar på skärmen är alla underklasser av UIView och läggs till i den här vyn.
i vårt exempel skapas vyn i den åsidosatta vykontrollens viewDidLoad () – metod. Jag har kodat detta för att ringa funktionen makeLayout(), där uilabel-och UIButton-kontrollerna skapas. UITextField skapades på klassnivå eftersom det måste nås i funktionsknappen (). Alla tre kontrollerna har sina egenskaper i makeLayout (); en kontroll visas inte förrän den läggs till i vyn genom att anropa vykontrollens vy.addSubview () metod.
ViewController-klassen börjar så här:
variabeln MSG innehåller strängen som skrivs in. Eftersom vi behöver komma åt textfältet utanför makeLayout () – metoden (se nedan) skapas det på klassnivå.
denna metod är i tre delar; den första skapar en uilabel-kontroll med uttalandet:
låt FirstLabel = UILabel()
de följande sex raderna ställer in FirstLabel-egenskaperna. Observera att kompilatorn är smart nog att veta det .redColor() är en förkortning för UIColor.redColor(). Slutligen läggs kontrollen till i vyn med uttalandet addSubview ().
uitextfield-kontrollen skapades redan på klassnivå, så här ställer vi bara in egenskaperna och lägger till den i vyn. Knappen skapas, egenskaperna ställs in och den läggs till i vyn.
UIButton.addTarget () – metoden har en åtgärdsparameter som anger namnet på den funktion som ska anropas när knappen klickas, och den har en efterföljande ”:” som ”buttonAction:”. Detta kallar den fantasifullt namngivna buttonAction () – metoden.
func buttonAction(avsändare:UIButton) {
msg = MyEdit.text
showAlert (avsändare)
}
buttonAction () – metoden tilldelar textsträngen från textfältet till MSG-variabeln, som sedan visas med ShowAlert () – metoden. Detta använder den nya iOS 8 UIAlertController, som ersätter den gamla UIAlertView (nu föråldrad). Den showAlert () metoden skapar en instans av en UIAlertController, lägger till en åtgärd så att du har något att klicka, och sedan kallar presentViewController(), vilket är ett sätt för en vy controller för att växla till en annan.
kommentarer till koden
nyckelordet ” var ”används för att deklarera en variabel medan” let ” används för att deklarera en konstant eller oföränderlig variabel. Även om kontrollerna deklareras som oföränderliga betyder det bara att du inte kan ändra kontrollinstansen men du kan ändra dess egenskaper. Varningen genomförs av en UIAlertController; en annan typ av view controller.
- Python, Swift, JavaScript, Java: bästa sätten att lära dem
- här är Apple för att lära dig om Swift
- en första titt på Apples Swift-programmeringsspråk