如何在不引入 View 或选项卡控制器的情况下将核心位置数据集成到我的空白 iPhone 应用程序?

Posted

技术标签:

【中文标题】如何在不引入 View 或选项卡控制器的情况下将核心位置数据集成到我的空白 iPhone 应用程序?【英文标题】:How can I integrate core location data to my blank iPhone App without introducing View or tab controller? 【发布时间】:2012-02-21 09:58:16 【问题描述】:

如何在不创建额外视图控制器或选项卡控制器的情况下将核心位置数据(纬度、经度、海拔高度)集成到我的(单视图)iPhone 应用程序中?换句话说,当我运行应用程序时,我希望看到一个空白屏幕(xView),但能够在后台收集(经度、纬度信息,然后可能将坐标存储在文件中或将其传递给其他函数。抱歉,如果这听起来像个愚蠢的问题。我是 ios 开发的新手。谢谢。

HelloXYZAppDelegate.h:

#import <UIKit/UIkit.h>
#import "MyclassView.h"

@interface HelloXYZAppDelegate: NSObject <UIApplicationDelegate> 

  MyClassView* _xView;

@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) IBOutlet MyClassView *xView;

@end





HelloXYZAppDelegate.m

#import "HelloXYZAppDelegate.h"
@implementation HelloXYZAppDelegate
@synthesize xView=_xView;
@synthesize window=_window;

 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:      

 self.xView = [[[MyClassView alloc] initWithFrame:screenBounds] autorelease];
 [self.window addSubview:_xView];
 [self.window makeKeyAndVisible];
 return YES;


@end





MyClassView.h:
#import <UIKit/UIKit.h>
#import <CoreLocation/CoreLocation.h>
#include <OpenGLES/ES2/gl.h> 

@interface MyClassView : UIView 

CAEAGLLayer* _eaglLayer;
EAGLContext* _context;
GLuint _CRBuffer;
GLuint _PSlot;
....
....
....
CLLocationManager *LM;  //not sure if I can do this in here
CLLocation *SP;         //not sure if I can do this in here

@property (nonatomic, retain) CLLocationManager *LM;
@property (nonatomic, retain) CLLocation *SP;
@end





MyClassView.m

- (void)locationManager:(CLLocationManager *)manager
didUpdateToLocation:(CLLocation *)newLocation
       fromLocation:(CLLocation *)oldLocation 

if (SP == nil)
    self.SP = newLocation;
NSString *latitudeString = [[NSString alloc] initWithFormat:@"%g\u00B0",
                        newLocation.coordinate.latitude];
NSLog(@"latitude is %@", latitudeString);
    [latitudeString release];
   

- (void)viewDidLoad

self.LM = [[CLLocationManager alloc] init];
LM.delegate = self;
LM.desiredAccuracy = kCLLocationAccuracyBest;
[LM startUpdatingLocation];    
[super viewDidLoad];

【问题讨论】:

【参考方案1】:

非常简单的tutorial 位于核心位置。如果您希望存储数据以供以后使用,您可能想要创建一个数据 NSObject 类,但是看到您不想进行额外的分类,请在创建位置时定义两个 @property NSStrings lat 和 long将两个字符串设置为两个变量,您可以稍后访问它们。 本教程将数据打印在屏幕上,如果您不想要,请忽略该部分

【讨论】:

以上是关于如何在不引入 View 或选项卡控制器的情况下将核心位置数据集成到我的空白 iPhone 应用程序?的主要内容,如果未能解决你的问题,请参考以下文章

如何在不覆盖 TTY 的情况下将密码传递给 su/sudo/ssh?

如何以编程方式使用 Swift 3 在所有视图控制器中显示选项卡栏?

如何在不丢失setfocus的情况下将光标设置到文本框的末尾?

如何在不将图像保存在本地的情况下将捕获的图像(Surface View)传递给另一个片段?

如何在不使用共享首选项的情况下将数据存储为颤动的对象[关闭]

如何在不使用界面生成器的情况下将视图与控制器分离