如何检查MKCoordinateRegion是否包含CLLocationCoordinate2D而不使用MKMapView?

我需要检查用户位置是否属于MKCoordinateRegion。 我很惊讶没有find简单的函数, 像这样:CGRectContainsCGPoint(矩形,点) 。 我发现下面的一段代码: CLLocationCoordinate2D topLeftCoordinate = CLLocationCoordinate2DMake(region.center.latitude + (region.span.latitudeDelta/2.0), region.center.longitude – (region.span.longitudeDelta/2.0)); CLLocationCoordinate2D bottomRightCoordinate = CLLocationCoordinate2DMake(region.center.latitude – (region.span.latitudeDelta/2.0), region.center.longitude + (region.span.longitudeDelta/2.0)); if (location.latitude < topLeftCoordinate.latitude || location.latitude > bottomRightCoordinate.latitude || location.longitude < bottomRightCoordinate.longitude || location.longitude > bottomRightCoordinate.longitude) { // Coordinate fits into the region } 但是,我不确定是否准确,因为文档没有明确指定区域矩形的计算方式。 必须有更简单的方法来做到这一点。 我忽略了MapKit框架文档中的一些function吗?

从相机/照片库上载离子应用程序图像

我正在开发离子聊天应用程序,用户可以将照片作为其消息的一部分进行上传。 我正在寻找一种方法将图像上传到我的虚拟主机服务器,以便以后通过URL检索。 问题是,我无法将其上传到我的networking服务器。 我正在使用这两个插件: org.apache.cordova.file转移 cordova – 插件相机 当我在Xcode模拟器中运行应用程序,并从设备photolibrary中select一张图片时,控制台给我以下消息: File Transfer Finished with response code 200 void SendDelegateMessage(NSInvocation *): delegate (webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:) failed to return after waiting 10 seconds. main run loop mode: kCFRunLoopDefaultMode> SUCCESS: "" 这是我目前使用的代码: app.controller('HomeController', function($rootScope, $scope, $cordovaCamera, $ionicActionSheet, $cordovaFileTransfer){ … // open PhotoLibrary $scope.openPhotoLibrary = function() { var options = { quality: […]

Xcode故事板:为什么iPad故事板显示iPhone大小的视图?

我有一个使用故事板的通用应用程序。 有一个iPhone故事板和一个iPad故事板。 但是,在界面构build器中,iPad故事板的视图控制器仍然适用于iPhone。 如何让iPad故事板显示iPad大小的视图控制器? 我意识到,界面生成器中的视图控制器显示是devise时唯一的视觉效果,但是iPhone尺寸的VC使得真正难以正确布置用户界面。

大中央调度与NSThread

我为NSThread和Grand Central Dispatch(GCD)创build了一些testing代码: – (void)doIt:(NSNumber *)i { sleep(1); NSLog(@"Thread#%i", [i intValue]); } – (IBAction)doWork:(id)sender { for (int i = 0; 10 > i; i++) { NSNumber *t = [NSNumber numberWithInt:i]; [NSThread detachNewThreadSelector:@selector(doIt:) toTarget:self withObject:t]; } sleep(1); dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); dispatch_apply(10, queue, ^(size_t i) { sleep(1); NSLog(@"GCD#%u",(int)i); }); } 结果是: 2011-04-13 19:41:07.806 GDC[1494:5e03] Thread#0 […]

NSURLSession后台下载 – 恢复networking故障

在阅读了关于使用新的iOS7 api(NS​​URLSession)进行背景下载的Apple文档之后,我感到有点失望。 我确定苹果公司正在pipe理暂停/恢复在后台的networking可用性(或提供这样做的选项),但没有… 所以阅读文档,这是我们得到的: https://developer.apple.com/library/ios/documentation/cocoa/Conceptual/URLLoadingSystem/NSURLSessionConcepts/NSURLSessionConcepts.html 当任何任务完成时,NSURLSession对象会调用委托的URLSession:task:didCompleteWithError:方法,如果任务成功完成,则返回nil。 如果任务是可恢复的下载任务,则NSError对象的userInfo字典将包含NSURLSessionDownloadTaskResumeData项的值。 您的应用程序应使用可达性API来确定何时重试,然后应调用downloadTaskWithResumeData:或downloadTaskWithResumeData:completionHandler:创build新的下载任务以继续下载。 转到步骤3(创build和恢复任务对象)。 到目前为止,我理解的解决scheme,但我的问题是:什么架构是最好的处理丢失的networking,并在后台恢复下载? 在我身边,我使用可达性,每当networking可用,我恢复所有任务(在创build时通过NSArray引用),并在networking丢失时挂起它们。 这在前台运行良好,但对于后台,我需要帮助以下几点: 如果我的应用程序在前台没有连接,如果我没有连接到后台,所有我的任务将保持暂停状态,如果networking可用,则不会返回。 在后台丢失networking,停止所有的下载/任务。 场景: 在前台,我开始下载我的任务 我去背景和10秒后切换到“aireplan模式” 我的所有任务都有错误。 所以在方法URLSession:任务:didCompleteWithError:我使用downloadTaskWithResumeData恢复他们,或者如果我不能(因为有些没有足够的恢复数据)我创build一个新的任务,而不恢复它(除非networking回到那个时间)。 然后,我把无线上网 由于我仍然在后台,当networking回来而不启动应用程序时,我无法触发“简历”… 我如何解决这些问题? 我错过了什么吗?

iOS7的Safari浏览器:保存到主屏幕和持久的令牌

对于iOS 6. [某些]起,全屏Web应用程序的Cookie,SQLite数据和localStorage数据与Safari数据分开存储。 我有一个令牌,我需要在保存到主屏幕时持久保存到主屏幕应用程序。 这里有一个cookiestesting器。 并在这里讨论。 有没有人find一个优雅的解决这个问题? 非常难看的解决scheme也将被视为:)

将私钥添加到iOS Keychain中

我正在尝试将私钥添加到iOS钥匙串中。 证书(公钥)工作正常,但私钥拒绝…我完全困惑为什么下面的代码不起作用。 首先,我正在检查钥匙串中当前的钥匙(钥匙是钥匙串是钥匙/值存储)是否是“自由的”。 然后我要添加私钥。 CFStringRef labelstring = CFStringCreateWithCString(NULL, [key cStringUsingEncoding:NSUTF8StringEncoding], kCFStringEncodingUTF8); NSArray* keys = [NSArray arrayWithObjects:(__bridge id)kSecClass,kSecAttrLabel,kSecReturnData,kSecAttrAccessible,nil]; NSArray* values = [NSArray arrayWithObjects:(__bridge id)kSecClassKey,labelstring,kCFBooleanTrue,kSecAttrAccessibleWhenUnlocked,nil]; NSMutableDictionary* searchdict = [NSMutableDictionary dictionaryWithObjects:values forKeys:keys]; CFRelease(labelstring); NSMutableDictionary *query = searchdict; CFTypeRef item = NULL; OSStatus error = SecItemCopyMatching((__bridge_retained CFDictionaryRef) query, &item); if (error) { NSLog(@"Error: %ld (statuscode)", error); } if(error != […]

苹果推送通知可以发送更多的参数比警报和声音?

我有几个元数据,我需要与推送通知关联。 例如用户号,消息ID。 我可以发送比苹果支持更多的参数: {aps = { alert = joetheman; sound = default; };} 这可能吗?

UICollectionView基于设备屏幕大小的单元间距

我已经实现了一个UICollectionView,单元格大小为w90 h90。 当我在iPhone 6上运行它,我得到单元格之间的适当间距,但是当我在iPhone 5s上做到这一点,我得到更多的单元格之间的间距。 我的问题是如何根据设备的屏幕大小更改单元格大小 ,假设单元格大小为w80 h80,我也在iPhone 5s上获得了正确的结果。 我现在正在做的是 override func viewWillAppear(animated: Bool) { var scale = UIScreen.mainScreen().scale as CGFloat println("Scale :\(scale)") var cellSize = (self.collectionViewLayout as UICollectionViewFlowLayout).itemSize println("Cell size :\(cellSize)") imageSize = CGSizeMake(cellSize.width * scale , cellSize.height * scale) println("Image size : \(imageSize)") } // sizeForItemAtIndexPath func collectionView(collectionView: UICollectionView,layout collectionViewLayout: UICollectionViewLayout,sizeForItemAtIndexPath indexPath: NSIndexPath) […]

调整UIImage的大小并更改UIImageView的大小

我有这个UIImageView ,我有它的最大高度和最大宽度的值。 我想要实现的是我想要的图像(任何长宽比和任何分辨率),我希望它适合在边界,所以图片不超过他们,但它可以缩小他们想要的。 (图中标有红色): 现在图像适合所需的大小,但我有两个担心:1. UIImageView不等于大小的resize的图像,从而留下红色的背景(我不希望这样)2.如果图像较小我的UIImageView的高度没有被调整到更小,它保持相同的高度。 这是我的代码,我知道它的错误: UIImage *actualImage = [attachmentsArray lastObject]; UIImageView *attachmentImageNew = [[UIImageView alloc] initWithFrame:CGRectMake(5.5, 6.5, 245, 134)]; attachmentImageNew.image = actualImage; attachmentImageNew.backgroundColor = [UIColor redColor]; attachmentImageNew.contentMode = UIViewContentModeScaleAspectFit; 那么如何dynamic地改变UIImageView.image的大小,而不是整个UIImageView的大小,从而使其大小完全可以调整其内容。 任何帮助将不胜感激,谢谢!