我几乎看过所有其他关于此的帖子,但我似乎无法理解。我是 iOS 和 Objective-C 的新手,我正在关注 Objective-C 和 iOS 的 Big Nerd Ranch 指南。我在他们的网站上发现的挑战之一是制作一个简单的 CoreLocation 应用程序,我正在尝试将代码分离到类中,以便以后可以根据需要重用它。
我想在我的 ViewController.m 文件中获取按钮来调用 MyLocation.m 文件中的 locationManager,这是 MyLocation 类。我已经研究过 NSNotificaiton,但我也无法让它正常工作。
我一生都无法弄清楚我错过了什么或做错了什么。对于这个问题的简单性,我深表歉意,我正在努力学习尽可能多的基础知识。
以下是我的文件:
视图控制器.h:
#import <UIKit/UIKit.h>
#import "MyLocation.h"
@interface ViewController : UIViewController
- (IBAction)GetLocation:(id)sender;
@property (weak, nonatomic) IBOutlet UILabel *LocationOutput;
@end
视图控制器.m:
#import "ViewController.h"
#import "MyLocation.h"
@interface ViewController ()
@end
@implementation ViewController
@synthesize LocationOutput;
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}
- (void)viewDidUnload
{
[self setLocationOutput:nil];
[super viewDidUnload];
// Release any retained subviews of the main view.
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);
}
- (IBAction)GetLocation:(id)sender {
//WHAT GOES HERE?
}
@end
我的位置.h:
#import <Foundation/Foundation.h>
#import <CoreLocation/CoreLocation.h>
@class MyLocation;
@protocol MyLocationDelegate <NSObject>;
@end
@interface MyLocation : NSObject <CLLocationManagerDelegate>
@property (nonatomic, strong) CLLocationManager *locationManager;
@end
我的位置.m:
#import "MyLocation.h"
@implementation MyLocation
@synthesize locationManager = _locationManager;
-(void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
{
NSLog(@"Latitude is: %f", newLocation.coordinate.latitude);
}
@end
我知道我还没有向标签输出任何东西,但我正在做一个 NSLog。
感谢您的任何帮助。对此,我真的非常感激。