Arbeta med CorePlot Project Setup

När du arbetar med dataintensiva applikationer måste en utvecklare ofta göra mer än bara visa listor med dataposter i en tabellvy. CorePlot-biblioteket låter dig lägga till fantastiska datavisualiseringar till dina applikationer. Ta reda på hur i denna Tuts + Premium-serie!

Datavisualisering är avgörande när det gäller att hjälpa användaren att ge känsla av data och att fatta viktiga beslut. CorePlot är ett tredje part bibliotek som låter dig visa en rad interaktiva grafer inom din ansökan. Detta inkluderar linjediagram, scatterplotgrafer, stapeldiagram och även cirkeldiagram. Du kan anpassa utseendet på graferna och till och med tillåta användaren att interagera med dem.


Finns även i serien:

  1. Arbeta med CorePlot: Project Setup
  2. Arbetar med CorePlot: Plot Fundamentals
  3. Arbetar med CorePlot: Styling och Add Plots
  4. Arbeta med CorePlot: Skapa en stapeldiagram
  5. Arbeta med CorePlot: Skapa en cirkeldiagram

Vad vi kommer att täcka

Under de nästa 5 handledningarna kommer vi att skapa en applikation som grafikerar data om studentregistrering på ett universitet. Specifikt kommer vi att täcka:

  • Så lägger du till CorePlot i en applikation.
  • Grunderna i CorePlot och hur man får en graf att fungera.
  • Skapa en linjediagram.
  • Styling grafer.
  • Skapa ett stapeldiagram.
  • Abstraherande grafdatalogik.
  • Skapa ett cirkeldiagram.

Obligatorisk kunskap

Du måste ha en mellanliggande förståelse för IOS-utveckling och delegationsmönstret för utveckling. En förståelse för CoreData är användbar men inte nödvändig. Mycket av CoreData-funktionaliteten har redan implementerats och du kommer att styras genom ytterligare samtal till datalagret.


Provprocessen

I källkoden hittar du basprogrammet vi kommer att använda framåt. Det är ett grundläggande flikfältprogram som använder Core Data för att lagra elev- och ämnesinformation och listar dem i separata tabellvyer. Du kan lägga till en elev eller ett ämne genom att trycka på knappen "+" i det övre högra hörnet.

Ämnesklassen har följande egenskaper:

  • Ämne-ID: Unik identifierare, genererad automatiskt.
  • Ämnesnamn: Ämnesnamn, beskriver vad ämnet handlar om.

Studentklassen har följande egenskaper:

  • Student-ID:Unik identifierare, genererad automatiskt.
  • Elevs namn: Studentens förnamn och efternamn.
  • Ämne-ID: Ämnes-ID som de är inskrivna. För enkelhets skull antar vi att en student bara kan skriva in ett ämne.
  • Dag Inskriven: Vi antar att anmälan går över en 7-dagarsperiod. Den inskrivna dagen är den dag studenten har kommit in under den perioden för att anmäla sig.

Öppna projektet och se till att det körs. För denna serie använder jag inte automatisk referensräkning, så vi måste hantera vårt eget minne. Du bör se programlanseringen med fliken "Elever" och "Ämnen". Varje flik ska innehålla en tabellvy med vissa förfyllda data i varje. När du har bekräftat att allt fungerar, kan vi fortsätta lägga till CorePlot i vår ansökan.



Importerar CorePlot

Det första steget är att ladda ner den senaste versionen av CorePlot. Vid skrivningstidpunkten är det v1.0. Besök startsidans kärnområde och navigera till nedladdningsavsnittet.


Ladda ner zip-filen. Biblioteket är cirka 140 mb så det kan ta en stund om du har en långsam anslutning.

Vi ska lägga CorePlot Library-filer i vår ansökan. Det är bra att lagra tredje part i en mapp som är skild från de andra klassfilerna. Skapa en ny mapp i källkatalogen "StudentTracker" som heter "Externa bibliotek".

Du kan inkludera CorePlot som en beroende projektinstallation eller ett statiskt bibliotek. Jag gillar att inkludera det som en beroende projektinstallation eftersom det tillåter oss att komma åt källkoden och se hur sakerna fungerar som en distinkt form, bara att se huvudfilerna.

  1. Kopiera katalogen "CorePlot" till den nyskapade "Externa bibliotek" -mappen i StudentTracker-källkatalogen.

  2. Skapa en grupp i XCode som heter samma ("Externa bibliotek")

  3. I sökaren letar du efter "CocoaTouch.xcodeproj" projektfilen ("CorePlot_1.0 / Source / frameworkCocoaTouch.xcodeproj") och dra den till gruppen "Externa bibliotek" i Xcode.

  4. Välj din applikationsprofilfil i xcode och klicka på fliken "Byggfaser". Därifrån behöver du lägga till CorePlot-CocoaTouch-biblioteket i gruppen "Target Dependencies".
  5. Du måste också länka binäret med CorePlot-biblioteket. Expand "Länka binära med bibliotek" -gruppen och lägg till "libCorePlot-CocoaTouch.a"

  6. Du måste också lägga till några inställningar på fliken Bygginställningar. Ange huvud sök sökvägen till ramkatalogen i CorePlot källkatalogen (ska vara "$ PROJECT_DIR / StudentTracker / Externa bibliotek / CorePlot_1.0 / Source / framework /"). Markera rutan till höger om texten (för att indikera rekursiv). Du bör också ändra "Always Search User Paths" till "Yes".

  7. Därefter lägger du till "-ObjC" i fältet "Other Linker Flags".
  8. CorePlot bygger på QuartzCore-ramverket, så fortsätt och lägg till det som en nödvändig ram.
  9. Slutligen måste du importera filen "CorePlot-cocoaTouch.h" i alla filer som kräver det. Vi behöver inte det ännu, men bara försök lägga till det i ansökningsdelegeringsfilen för att säkerställa att allt sammanställs korrekt.

Om projektet kompilerar framgångsrikt är allt bra att gå!


Vanliga problem

 CPTAnnotation.h filen hittades inte

Det betyder att sökmappen för rubrikrubrik inte har hittats korrekt. Se till att du använder "Header Search Paths" och inte "Framework Search Paths". Det är viktigt att kontrollera att kryssrutan är markerad och "Sök alltid användarvägar" är inställd på "Ja".

 Odefinierade symboler för arkitektur i386: "_CATransform3DIsIdentity", refererad från: ... 

Dessa läskiga fel uppstår eftersom QuartzCore Framework inte har inkluderats. Allt du behöver göra är att inkludera QuartzCore Framework (i gruppen "Link Binary With Libraries") och dessa fel kommer att gå iväg!


Sammanfatta

Vi har fått en bra introduktion till vad CorePlot kan göra och hur man lägger till det i ett befintligt projekt. Nästa gång kommer vi att få händerna smutsiga och börja bygga en linjediagram för att visa hur många studenter som är inskrivna på varje inskrivningsdag. Fånga dig nästa gång!