Arbeide med CorePlot Prosjektoppsett

Når du arbeider med dataintensive applikasjoner, må en utvikler ofte gjøre mer enn bare å vise lister over dataposter i en tabellvisning. CorePlot-biblioteket lar deg legge til fantastiske datavisualiseringer i dine applikasjoner. Finn ut hvordan i denne Tuts + Premium-serien!

Datavisualisering er avgjørende for å hjelpe brukeren å gi mening om data og å ta viktige beslutninger. CorePlot er et tredjepartsbibliotek som lar deg vise en rekke interaktive grafer i søknaden din. Dette inkluderer linjediagrammer, scatterplotgrafer, bardiagrammer og til og med kakediagrammer. Du kan tilpasse utseendet på grafene og til og med tillate brukeren å samhandle med dem.


Også tilgjengelig i denne serien:

  1. Arbeide med CorePlot: Prosjektoppsett
  2. Arbeide med CorePlot: Plot Fundamentals
  3. Arbeider med CorePlot: Styling og Add Plots
  4. Arbeide med CorePlot: Opprette et strekdiagram
  5. Arbeide med CorePlot: Opprette et kakediagram

Hva vi skal dekke

I løpet av de neste 5 opplæringsprogrammene skal vi lage et program som graver data om studentopptak på et universitet. Spesielt vil vi dekke:

  • Slik legger du til CorePlot i et program.
  • Grunnleggende om CorePlot og hvordan du får en graf som fungerer.
  • Opprette en linjediagram.
  • Styling grafer.
  • Opprette et strekdiagram.
  • Abstraktiv grafisk data logikk.
  • Opprette et kakediagram.

Krevd kunnskap

Du må ha en mellomliggende forståelse av IOS-utvikling og delegasjonsmønsteret for utvikling. En forståelse av CoreData er nyttig, men ikke nødvendig. Mye av CoreData-funksjonaliteten er allerede implementert, og du vil bli guidet gjennom eventuelle videre samtaler til datalageret.


Sample Application

I kildekoden finner du baseprogrammet vi skal bruke fremover. Det er et grunnleggende fanebladprogram som bruker Core Data til å lagre student- og faginformasjon og lister dem i separate tabellvisninger. Du kan legge til en student eller et emne ved å trykke på "+" knappen øverst i høyre hjørne.

Fagklassen har følgende egenskaper:

  • Emne ID: Unik identifikator, automatisk generert.
  • Emne navn: Emne navn, beskriver hva temaet handler om.

Studentklassen har følgende egenskaper:

  • Student ID:Unik identifikator, automatisk generert.
  • Student navn: Den oppgitte og etternavnet til studenten.
  • Emne ID: Emnet ID som de er innmeldt. For enkelhets skyld, antar vi at en student kun kan registrere seg i ett emne.
  • Dag innmeldt: Vi antar at registreringen går over en 7-dagers periode. Dagen som er innmeldt, er dagen studenten er kommet inn i løpet av denne perioden for å registrere seg.

Åpne prosjektet og sørg for at det går. For denne serien bruker jeg ikke automatisk referansetelling, så vi må klare vårt eget minne. Du bør se programstart med en "Student" og "Emner" -fanen. Hver fane skal inneholde en tabellvisning med noen forhåndsbefolket data i hver. Når du har bekreftet at dette hele fungerer, kan vi fortsette å legge til CorePlot i vår søknad.



Importerer CorePlot

Det første trinnet er å laste ned den nyeste versjonen av CorePlot. På skrivningstidspunktet er det v1.0. Gå til kjerneplottens hjemmeside og naviger til nedlastingsseksjonen.


Last ned zip-filen. Biblioteket er rundt 140 mb, så det kan ta en stund hvis du har en langsom tilkobling.

Vi skal legge inn CorePlot Library-filene i vår søknad. Det er god praksis å lagre tredjeparter i en mappe som er skilt fra de andre klassefilene. Opprett en ny mappe i kildemappen "StudentTracker" kalt "Eksterne biblioteker".

Du kan inkludere CorePlot som en avhengig prosjektinstallasjon eller et statisk bibliotek. Jeg liker å inkludere den som et avhengig prosjekt installasjon som det tillater oss å få tilgang til kildekoden og se hvordan ting fungerer som tydelig form bare å se toppfiler.

  1. Kopier katalogen "CorePlot" i den nylig opprettede "Eksterne biblioteker" -mappen i StudentTracker-kildemappen.

  2. Opprett en gruppe i XCode kalt det samme ("Eksterne biblioteker")

  3. I Finder finner du prosjektfilen "CocoaTouch.xcodeproj" ("CorePlot_1.0 / Source / frameworkCocoaTouch.xcodeproj") og drar den inn i gruppen "Eksterne biblioteker" i Xcode.

  4. Velg søkeprosjektfilen din i xcode og klikk på "Build Phases" -fanen. Derfra må du legge til CorePlot-CocoaTouch-biblioteket i gruppen "Målavhengigheter".
  5. Du må også koble det binære med CorePlot-biblioteket. Utvid gruppen "Link binær med biblioteker" og legg til "libCorePlot-CocoaTouch.a"

  6. Du må også legge til noen innstillinger i kategorien Bygg innstillinger. Angi header søkeveien til rammekatalogen i CorePlot kildekatalogen (skal være "$ PROJECT_DIR / StudentTracker / Eksterne biblioteker / CorePlot_1.0 / Source / framework /"). Merk av i boksen til høyre for teksten (for å indikere rekursiv). Du bør også endre "Always Search User Paths" til "Yes".

  7. Deretter legger du til "-ObjC" i "Andre Linker Flagg" -feltet.
  8. CorePlot er avhengig av QuartzCore-rammeverket, så fortsett og legg til det som et nødvendig rammeverk.
  9. Til slutt må du importere filen "CorePlot-cocoaTouch.h" til alle filer som krever det. Vi trenger ikke det ennå, men bare prøv å legge det til applikasjonsdelegeringsfilen for å sikre at alt kompileres riktig.

Hvis prosjektet kompilerer vellykket, er alt godt å gå!


Vanlige problemer

 CPTAnnotation.h fil ikke funnet

Dette betyr at søkemappen for headerbanen ikke er plassert riktig. Pass på at du bruker "Header Search Paths" og ikke "Framework Search Paths". Det er viktig å sørge for at avkryssingsboksen er krysset, og "Always Search User Paths" er satt til "Yes".

 Udefinerte symboler for arkitekturen i386: "_CATransform3DIsIdentity", referert fra: ... 

Disse skummel utseende feilene eksisterer fordi QuartzCore Framework ikke er inkludert. Alt du trenger å gjøre er å inkludere QuartzCore Framework (i gruppen "Link Binary With Libraries"), og disse feilene vil gå bort!


Wrap up

Vi har fått en god introduksjon til hva CorePlot kan gjøre og hvordan du legger det til et eksisterende prosjekt. Neste gang skal vi få våre hender skitne og begynne å bygge en linjediagram for å vise hvor mange studenter som er registrert på hver innmeldingsdag. Fang deg neste gang!