iOS:	  Frameworks,	  Delega3on	  and	  MapKit	                  Jussi	  Pohjolainen	      Tampere	  University	  of	  Appl...
About	  Frameworks	  •  Framework	  is	  a	     collec3on	  of	  classes	     that	  are	  added	  to	  target	  •  Target...
NSString	  NSString	  needs	  the	  Founda3on	  framework!	  
Add	  a	  Framework	  Choose	  Target	  Select	  Build	  Phases	  Click	  +	  (Link	  Binary	  with	  Libraries)	  
About	  Delegate	  // Create location managerLocationManager* lc = [[LocationManageralloc] init];// Who is receiving locat...
Documenta3on	            Whatever	  object,	              but	  is	  has	  to	               implement	           CLoca3oi...
About	  Delegate	  // Create location managerlc = [[LocationManager alloc] init];// Set delegate this “this”-object[lc set...
Implemen3ng	  a	  Delegate	  #import <UIKit/UIKit.h>#import <CoreLocation/CoreLocation.h>@interface MyLocationViewControll...
Delegate	  Methods	  
Implementa3on	  - (void)locationManager:(CLLocationManager *)manager     didUpdateLocations:(NSArray *)locations{    // Im...
Delega3on	  •  Delega3on:	  OO	  way	  of	  making	  callback	  •  Send	  messages	  to	  some	  object.	  Some	  object	 ...
Delega3on	  •  If	  delega3on	  protocol	  method	  is	  mandatory,	     it’s	  called	  without	  checking	  •  If	  dele...
CLLoca3onManagerDelegate.h	              All	  methods	  are	  op3onal!	  
Demo:	  Using	  Debugger	  
MAPKIT	  
MapKit	  Framework	  •  Interface	  for	  embedding	  maps	  into	  view	  •  Supports	  also	      –  Annota3ng	  map	   ...
How?	  •  Add	  MapKit	  framework	  to	  your	  project	  •  Import	  MapKit	  –	  class	     –  #import <MapKit/MapKit.h...
MKMapViewDelegate	               This	  is	  called	  when	  user	  loca3on	                changes.	  In	  here	  you	  c...
Annota3ons	  •  Display	  something	  on	  a	  map:	  annota3on	  •  Annota3on	  is	  any	  object	  that	  conforms	  to	...
MapPoint	  
Add	  MapPoint	  to	  Map	  
Upcoming SlideShare
Loading in...5
×

iOS: Frameworks and Delegation

776

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
776
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
24
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

iOS: Frameworks and Delegation

  1. 1. iOS:  Frameworks,  Delega3on  and  MapKit   Jussi  Pohjolainen   Tampere  University  of  Applied  Sciences  
  2. 2. About  Frameworks  •  Framework  is  a   collec3on  of  classes   that  are  added  to  target  •  Target  =  the  compiled   iOS  app  •  Cocoa  Touch  has   several  frameworks  •  You  can  add  and   remove  frameworks  in   your  project  
  3. 3. NSString  NSString  needs  the  Founda3on  framework!  
  4. 4. Add  a  Framework  Choose  Target  Select  Build  Phases  Click  +  (Link  Binary  with  Libraries)  
  5. 5. About  Delegate  // Create location managerLocationManager* lc = [[LocationManageralloc] init];// Who is receiving location updates? It’s// someObject. What is someObject? It’s// whatever object that implements a// certain protocol![lc setDelegate: someObject];
  6. 6. Documenta3on   Whatever  object,   but  is  has  to   implement   CLoca3oinManager Delegate  Protocol!  
  7. 7. About  Delegate  // Create location managerlc = [[LocationManager alloc] init];// Set delegate this “this”-object[lc setDelegate: self];
  8. 8. Implemen3ng  a  Delegate  #import <UIKit/UIKit.h>#import <CoreLocation/CoreLocation.h>@interface MyLocationViewController :UIViewController<CLLocationManagerDelegate>{ CLLocationManager *locationManager;}
  9. 9. Delegate  Methods  
  10. 10. Implementa3on  - (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations{ // Implementation here}
  11. 11. Delega3on  •  Delega3on:  OO  way  of  making  callback  •  Send  messages  to  some  object.  Some  object  must  have   methods  that  are  defined  in  the  protocol  •  The  same  than  in  Java   –  buUon.addAc3onlistener(Ac3onListener  x)   –  Where  x  is  an  interface  •  By  default,  protocol  methods  are  mandatory.  But   protocol  may  hold  op-onal  methods!  •  Typically  in  delegate  protocols,  the  methods  are   op-onal  
  12. 12. Delega3on  •  If  delega3on  protocol  method  is  mandatory,   it’s  called  without  checking  •  If  delega3on  protocol  method  is  op3onal,   then  checking  is  done:  if  target  object  contains   this  method,  call  it.   –  This  happens  in  run3me,  you  don’t  have  to  worry   about  this.  
  13. 13. CLLoca3onManagerDelegate.h   All  methods  are  op3onal!  
  14. 14. Demo:  Using  Debugger  
  15. 15. MAPKIT  
  16. 16. MapKit  Framework  •  Interface  for  embedding  maps  into  view  •  Supports  also   –  Annota3ng  map   –  Adding  overlay   –  Reverse  geocoding  •  As  of  iOS  6  Apple  uses  it’s  own  maps  instead  of   Google  maps  •  Reference   –  hUp://developer.apple.com/library/ios/ #documenta3on/MapKit/Reference/ MapKit_Framework_Reference/_index.html  
  17. 17. How?  •  Add  MapKit  framework  to  your  project  •  Import  MapKit  –  class   –  #import <MapKit/MapKit.h>•  Use  MKMapView  object   –  IBOutlet MKMapView *worldView;•  Show  user  loca3on?   –  Set  showsUserLocation  property  to  YES•  Use  MKMapViewDelegate  protocol
  18. 18. MKMapViewDelegate   This  is  called  when  user  loca3on   changes.  In  here  you  can  get   the  coordinates  and  zoom  in   MapView  
  19. 19. Annota3ons  •  Display  something  on  a  map:  annota3on  •  Annota3on  is  any  object  that  conforms  to   MKAnnotation  protocol   –  These  objects  can  be  added  to  MKMapView  •  MKAnnota3on  Reference   –  An  object  that  adopts  this  protocol  must   implement  the  coordinate  property.  The  other   methods  of  this  protocol  are  op3onal.  
  20. 20. MapPoint  
  21. 21. Add  MapPoint  to  Map  
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×