با عرض سلام و وقت بخیر خدمت کاربران سایت پی وی لرن ،اگر به خاطر داشته باشید جلسه پیش مدیریت دوربین در iOS را به شما آموزش دادیم.جلسه یازدهم از آموزش های دوره iOS را با مدیریت موقعیت مکانی در iOS و تشخیص موقعیت مکانی iOS آغاز کنیم.
ما به راحتی می توانیم مکان فعلی کاربر را در iOS پیدا کنیم.
البته در صورتی که کاربر اجازه دهد تا برنامه را برای دسترسی به اطلاعات با کمک چارچوب مکان اصلی فراهم کند.
مراحل مربوطه _ مدیریت موقعیت مکانی
مرحله ۱ : یک برنامه ساده ایجاد کنید.
مرحله ۲ : فایل پروژه خود را انتخاب کنید، سپس target ها را انتخاب کنید و سپس CoreLocation.framework را به صورت زیر اضافه کنید :
مرحله ۳ : دو برچسب را در ViewController.xib اضافه کنید و ibOutlets ها را با نام برچسب ها به ترتیب با latitudeLabel و longitudeLabel ایجاد کنید.
مرحله ۴ : فایل جدید را با انتخاب File → New → File … → ایجاد کنید و کلاس Objective C را انتخاب کنید و روی next کلیک کنید.
مرحله ۵ : نام کلاس به عنوان LocationHandler با “زیر کلاس ” به عنوان NSObject نام گذاری کنید.
مرحله ۶ : سپس آن را انتخاب و ایجاد کنید.
مرحله ۷ : بروز رسانی LocationHandler.h به شرح زیر است :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | #import <Foundation/Foundation.h> #import <CoreLocation/CoreLocation.h> @protocol LocationHandlerDelegate <NSObject> @required -(void) didUpdateToLocation:(CLLocation*)newLocation fromLocation:(CLLocation*)oldLocation; @end @interface LocationHandler : NSObject<CLLocationManagerDelegate> { CLLocationManager *locationManager; } @property(nonatomic,strong) id<LocationHandlerDelegate> delegate; +(id)getSharedInstance; -(void)startUpdating; -(void) stopUpdating; @end |
مرحله ۸ : همچنین LocationHandler.m به شرح زیر بروز رسانی کنید:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | #import "LocationHandler.h" static LocationHandler *DefaultManager = nil; @interface LocationHandler() -(void)initiate; @end @implementation LocationHandler +(id)getSharedInstance{ if (!DefaultManager) { DefaultManager = [[self allocWithZone:NULL]init]; [DefaultManager initiate]; } return DefaultManager; } -(void)initiate { locationManager = [[CLLocationManager alloc]init]; locationManager.delegate = self; } -(void)startUpdating{ [locationManager startUpdatingLocation]; } -(void) stopUpdating { [locationManager stopUpdatingLocation]; } -(void)locationManager:(CLLocationManager *)manager didUpdateToLocation: (CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation { if ([self.delegate respondsToSelector:@selector (didUpdateToLocation:fromLocation:)]) { [self.delegate didUpdateToLocation:oldLocation fromLocation:newLocation]; } } @end |
مرحله ۹ : ViewController.h را به صورت زیر بروزرسانی کنید.
جایی که نماینده LocationHandler را اجرا کرده ایم و دو ibOutlets را ایجاد ساختیم.
1 2 3 4 5 6 7 8 | #import <UIKit/UIKit.h> #import "LocationHandler.h" @interface ViewController : UIViewController<LocationHandlerDelegate> { IBOutlet UILabel *latitudeLabel; IBOutlet UILabel *longitudeLabel; } @end |
مرحله ۱۰ : اکنون ViewController.m را به شرح زیر بروز رسانی کنید :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | #import "ViewController.h" @interface ViewController () @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; [[LocationHandler getSharedInstance]setDelegate:self]; [[LocationHandler getSharedInstance]startUpdating]; } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } -(void)didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation { [latitudeLabel setText:[NSString stringWithFormat: @"Latitude: %f",newLocation.coordinate.latitude]]; [longitudeLabel setText:[NSString stringWithFormat: @"Longitude: %f",newLocation.coordinate.longitude]]; } @end |
هنگامی که برنامه را اجرا می کنیم، خروجی زیر را مشاهده می کنیم :
اکثر برنامه ها در موبایل با این ویژگی سر و کار دارند به همین دلیل تشخیص موقعیت مکانی iOS عمل بسیار کاربردی برای برنامه ها محسوب می شود.با ما همراه باشید تا در جلسه بعد یکی از پایگاه داده مهم در iOS که همان پایگاه داده SQLite می باشد را معرفی و آموزش دهیم.