Как импортировать код удаленно?IOS - PullRequest
0 голосов
/ 09 июня 2011

В приложении, которое я создаю, я хочу вызвать некоторый код из другого класса и импортировать его в контроллер представления. Как бы я это сделал?

Код .h, из которого я пытаюсь импортировать:

#import <UIKit/UIKit.h>
#import <CoreLocation/CoreLocation.h>

@protocol LocationGetterDelegate <NSObject>
@required
- (void) newPhysicalLocation:(CLLocation *)location;
@end

@interface LocationGetter : NSObject <CLLocationManagerDelegate> { 
    CLLocationManager *locationManager;
    id delegate;
}

- (void)startUpdates;

@property (nonatomic, retain) CLLocationManager *locationManager;
@property(nonatomic , retain) id delegate;
@end

.m код, который я пытаюсь импортировать из

@synthesize locationManager, delegate;

BOOL didUpdate = NO;

- (void)startUpdates
{
    NSLog(@"Starting Location Updates");

    if (locationManager == nil)
        locationManager = [[CLLocationManager alloc] init];

    locationManager.delegate = self;

    // You have some options here, though higher accuracy takes longer to resolve.
    locationManager.desiredAccuracy = kCLLocationAccuracyKilometer;  
    [locationManager startUpdatingLocation];    
}

- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error
{
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error" message:@"Your location could not be determined." delegate:nil cancelButtonTitle:@"OK" otherButtonTitles: nil];
    [alert show];
    [alert release];      
}

// Delegate method from the CLLocationManagerDelegate protocol.
- (void)locationManager:(CLLocationManager *)manage didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
{
    if (didUpdate)
        return;

    didUpdate = YES;

    // Disable future updates to save power.
    [locationManager stopUpdatingLocation];

    // let our delegate know we're done
    [delegate newPhysicalLocation:newLocation];
}

- (void)dealloc
{
    [locationManager release];

    [super dealloc];
}

@end

Весь этот код я пытаюсь удаленно импортировать в view-controller.

Спасибо!

Ответы [ 2 ]

0 голосов
/ 09 июня 2011

Добавьте оба файла в ваш проект. В файле, где вы хотите использовать класс «LocationGetter», просто #import файла заголовка. Это должно заставить его работать - при условии, что вы добавили CoreLocation.framework в ваш проект.

Вам необходимо импортировать файл заголовка, так как во время компиляции компилятор должен увидеть объявление LocationGetter и его методов, прежде чем он сможет их обработать. Однако фактические определения не нужны до времени компоновки, поэтому достаточно иметь в своем проекте .m.

0 голосов
/ 09 июня 2011

Вам просто нужно сослаться на этот класс в вашем файле кода, и вы можете использовать его. Если вы обращаетесь к методам делегирования, вам нужно реализовать в себе файл .h viewcontroller

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...