使用MapKit和CoreLocation时的Xcode警告

我试图使用实现MKMapView的实例,使用CoreLocation跟踪用户的位置,然后放大到他们在哪里。 我只想跟踪用户的位置,当我在前台。 由于我的应用程序是针对iOS8,我有一个关键的NSLocationWhenInUseUsageDescription plist入口。 当我第一次运行应用程序时,应用程序会正确地询问是否可以访问我的位置。 当我点击“允许”后,我收到来自Xcode的以下警告: Trying to start MapKit location updates without prompting for location authorization. Must call -[CLLocationManager requestWhenInUseAuthorization] or -[CLLocationManager requestAlwaysAuthorization] first. …这有点令人困惑,因为我实际上正在调用requestWhenInUseAuthorization ,在我的代码中可以看到: @property (strong, nonatomic) IBOutlet MKMapView *mapView; @property(nonatomic, retain) CLLocationManager *locationManager; @end @implementation MapView – (void)viewDidLoad { [super viewDidLoad]; [self locationManager]; [self updateLocation]; } – (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; […]

在Swift中从callback中返回对象

我想用其他逻辑将geocoder.geocdeAddressString封装在另一个方法中。 public func placemarkForSearchResult<T>(searchResult: T) -> CLPlacemark? { if let searchResult = searchResult as? String { let geocoder = CLGeocoder() geocoder.geocodeAddressString(searchResult, completionHandler: { (placemarks, error) -> Void in // Check for returned placemarks if let placemarks = placemarks where placemarks.count > 0 { return placemarks[0] as! CLPlacemark // CLPlacemark is not convertible to void error […]

生成NSDateFormatter(null)SQLite和iOS 5.1

也许有人可以帮忙解释为什么我将string转换为date时得到一个空值。 这一切看起来不错,但我显然在这里失去了一些东西。 一些背景: 这个iPad的应用程序将在不同的国家使用,我将需要做一个计算date,看看自用户上次login后90天过去了。 我有一个DateLastIn字段设置为TEXT的SQLite数据库 我的对象有一个DateLastIn属性设置为NSDate 当填充我的logging对象时,我设置了一个NSDateFormatter。 NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; [formatter setDateFormat:@"yyyy-MM-dd hh:mm:ss"]; // SQLite default date format 然后我阅读DateLastIn(使用SQLite的FMDB封装)。 // test SQLite as String NSString *testDate = [results stringForColumn:@"DateLastIn"]; NSLog(@"DateLastIn straight from DB (string) shows %@", testDate); 结果: DateLastIn直接从DB(string)显示2012-04-23 18:20:51 一切都很好。 接下来我testing转换这个NSDate对象,例如 NSDate *aDate = [[NSDate alloc] init]; aDate = [formatter dateFromString:testDate]; […]

如何制作相同的iOS Swift应用程序,只需要在代码和资源方面有一些区别,可扩展的和干净的模式

我有这个需求。 我开发了一个应用程序,我想复制它。 我可以复制和粘贴项目,但如果我这样做10次可能是一个问题。 问题是,如果我在第10个重复中发现一个错误,我必须检查所有其他项目,我不想这样做。 有一个干净的方法来解决这个问题? 换句话说,我只有一个大代码。 我必须部署的应用程序之间的差异是: 启动器图标 HTTP请求的域 包裹名字 初始屏幕 应用名称 应用程序内的一些整数 一些资产 在Android中,我用gradle来做这个,特别是用这个风格。 我怎样才能做到这一点与斯威夫特?

ios:从iPhone / iPad的代码开启/closures飞行模式

可能重复: 以编程方式激活飞行模式? 有没有办法打开/closures飞行模式在IOS(> 4.x)的代码? 我正在寻找一些(官方)API调用… 问候,马可

在iOS中使用多点触控绘图进行撤消

我正在使用多点触控书写,所以基本上我正在做的是,我手写支持,因为通常,它的用户权限,我跟着这个链接如何忽略多点触控顺序中的某些UITouch点 一切工作正常,但是当我用手触摸屏幕的时候,他们是撤销的一些问题,否则它工作正常。 以下是我的代码 -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { UITouch* topmostTouch = self.trackingTouch; for (UITouch *touch in touches) { ctr = 0; touchStartPoint1 = [touch locationInView:self]; [m_undoArray removeAllObjects]; [m_redoArray removeAllObjects]; [m_parentRedoArray removeAllObjects]; if(!topmostTouch || [topmostTouch locationInView:self].y > touchStartPoint1.y) { topmostTouch = touch; pts[0] = touchStartPoint1; } } if (self.trackingTouch != nil && self.trackingTouch != topmostTouch) // […]

ios 9 objective-c屏幕尺寸问题

我升级到ios 9和xcode 7(来自xcode 6.2),现在,当我启动我的应用程序时,会发生这种情况: 现在上面和下面都有这些黑条。 我的appDelegate是这样的: – (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; // Override point for customization after application launch. // self.window.backgroundColor = [UIColor whiteColor]; // [self.window makeKeyAndVisible]; _startViewController = [[StartViewController alloc] init]; _startNavigationController = [[StartNavigationController alloc] initWithRootViewController:_startViewController]; self.window.rootViewController = _startNavigationController; [self.window makeKeyAndVisible]; // Need to fix this […]

如何使集合types约束generics?

我一直试图从string数组中提取非零值。 像下面一样。 但是,我的老大也希望能够从其他types中提取非零值 。 我看过, generics可以帮助我处理不同的types。 我怎样才能使用generics,以便我可以使用像扩展一样使用其他types? getNonNil必须返回提取的非零值的特定types(即如果数组是[string?]它必须返回[string],返回[INT]如果[INT?] ) 因为我必须做进一步的计算。 我所尝试的是如下: import Foundation // Extended the collection-type so that collectiontype is constrained to having element with optional strings extension CollectionType where Self.Generator.Element == Optional<String>{ func getNonNil() -> [String] { // filter out all nil elements and forcefully unwrap them using map return self.filter({$0 != nil}).map({$0!}) […]

使用Cglayer绘图进行撤消和重做

我正在使用绘图应用程序,我正在使用CGlayers进行绘图。 触摸结束后,我从图层中取出图像并将其存储在一个Array中,我使用该Array来撤消操作。 我的触摸结束function -(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event { NSLog(@"Touches ended"); UIGraphicsBeginImageContextWithOptions(self.bounds.size, NO, 0.0); CGContextRef context = UIGraphicsGetCurrentContext(); CGContextDrawLayerInRect(context, self.bounds, self.drawingLayer); m_curImage = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); [m_undoArray addObject: m_curImage]; } 我的绘图视图根据用户需求dynamic扩展,所以假设用户可以绘制一个drawView大小为200 * 200的线,然后将其展开为200 * 300并再绘制一行,然后将其展开为200 * 300并再绘制一行。 这是应用程序的图像 所以现在我有3个不同大小的图像在UndoArray。 每当我增加/减lesscanvas大小。 我已经写了这个代码 在drawingView的增加和减less,我正在写这个function (void)increaseDecreaseDrawingView { self.currentDrawingLayer = nil; if(self.permanentDrawingLayer) { rectSize = self.bounds; NSLog(@"Size%@", NSStringFromCGRect(self.bounds)); CGContextRef context = […]

iOS散点图核心差距

如何使用核心图绘制一个有差距的散点图? 我正在使用核心图库。 一切工作正常,但现在我想做一个在数据库开始或中间的差距散点图? 有人帮我吗?