Sprite Kit中可重复使用的multithreading实现

我正在做一个Sprite Kit游戏,我需要做一些multithreading来保持健康的fps。 在更新时,我调用一个函数来创build大量的UIBezierPaths,并使用C ++静态库合并它们。 如果我有超过10个形状的帧速率急剧下降,所以我决定给GCD尝试并尝试用单独的线程来解决这个问题。 我把这个放在didMoveToView: queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0); 并在每帧被调用的函数中,我称之为: dispatch_async(queue,^(void){[self heavyCalculationsFunc];}); 对于那些了解GCD的人来说,这可能是显而易见的,它会在每个框架上创build一个新的线索,但是对于我来说还不清楚。 我的问题是,是否有任何方法来重新使用我想调用更新的线程? 感谢您的帮助提前!

Swift:iOS部署目标命令行标志

如何在Swift条件编译语句中检查iOS部署目标? 我已经尝试了以下内容: #if __IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_8_0 // some code here #else // other code here #endif 但是,第一个expression式导致编译错误: Expected '&&' or '||' expression

在WKWebView中启动电话/电子邮件/地图链接

KINWebBrowser是iOS应用程序的开源网页浏览器模块。 我最近升级KINWebBrowser使用WKWebView开始逐步取消UIWebView。 这产生了显着的改进,但是: 问题:WKWebView不允许用户启动包含电话号码,电子邮件地址,地图等URL的链接。 如何将WKWebViewconfiguration为从显示页面以链接forms启动这些备用URL的标准iOS行为? 所有的代码都可以在这里find 有关WKWebKit的更多信息 在这里查看KINWebBrowser GitHub上的问题

swift:无法与Interface Builder进行通信

我刚刚在xcode 6 beta中打开了现有的项目。 但它与以下错误信息崩溃。 dyld: problem loading iOS simulator dyld 2014-06-05 11:15:06.604 ibtoold[952:507] Init failed: Error Domain=IBMessageChannelErrorDomain Code=1 "Failed to communicate with Interface Builder" UserInfo=0x7fd09861dbf0 {NSLocalizedDescription=Failed to communicate with Interface Builder, NSLocalizedFailureReason=Interface Builder Cocoa Touch Tool crashed: EXC_BREAKPOINT (SIGTRAP), IBCrashLog= Dyld Error Message: problem loading iOS simulator dyld } 2014-06-05 11:15:06.605 ibtoold[952:507] [MT] DVTAssertions: Warning […]

com.apple.CoreData.SQLDebug不起作用

我在iOS应用程序中使用MacOS Sierra上的Swift与Xcode 8一起工作。 我几个月前意识到SQLDebug停止工作…(它曾经在我的应用程序工作)… 我已经创build了一个新的空项目启用coredata标志..然后我创build了一个实体的属性,我在ViewDidLoad中执行此func和Xcode不logging的SQL func fetchAllData(){ //1 delegate let appDelegate = UIApplication.shared.delegate as! AppDelegate let managedContext = appDelegate.persistentContainer.viewContext //2 prepare fetch request let fetchRequest: NSFetchRequest<NSFetchRequestResult> = NSFetchRequest(entityName:"Entrenamientos") //3 make fetch do{ let fetchedResults = try managedContext.fetch(fetchRequest) as! [NSManagedObject] } catch{ } }

将ReactiveCocoa中的信号合并成一个新的,当所有的改变都会触发

我正在学习ReactiveCocoa,并且正在写一个基于Ray Wenderlich教程的简单太空侵略者克隆。 最近在开发过程中,我遇到了一个我无法解决的问题。 基本上我有两个信号: 轻击手势信号 一个每秒钟都在发射的定时序列 我想要实现的是将这些信号合并成一个新的信号,当两个信号都发生变化时就会触发这个信号吗? 我看到了combineLatest方法,但只要有任何信号发生变化,块就会执行。 我想要的伪代码是: RACSignal *updateEventSignal = [RACSignal interval:1 onScheduler:[RACScheduler mainThreadScheduler]]; RACSignal *gestureSignal = [[UITapGestureRecognizer new] rac_gestureSignal]; [[RACSignal combineBoth:@[gestureSignal, updateEventSignal] reduce:^id(id tap, id counter){ return tap; }] subscribeNext:^(id x) { NSLog(@"Tapped [%@]", x); }]; 也许我可以通过其他方式获得相同的结果,或者这不是预期的行为或ReactiveCocoa,但在这一点上,我想知道我是否处于正确的反应轨道。

swift / ios在后台刷新应用程序数据

我正在写一个iOS / Swift应用程序,每隔X分钟从REST服务读取数据并相应地更新UI。 现在,我希望当应用程序放在后台时,从REST服务读取X分钟间隔的任务,并且在刚刚读取的数据满足给定条件的情况下继续调用任务,显示通知提示用户将应用程序回到前台。 在我的search中,我已经阅读了applicationDidEnterBackground事件,我应该用beginBackgroundTaskWithExpirationHandler启动一个任务。 问题是,如果我理解正确,这最多可以允许10/15分钟,如果任务不是以endBackgroundUpdateTask停止的话,应用程序将被终止,而我希望任务能够无限期地持续轮询服务(至less直到用户从应用程序的设置中禁用它) 我的问题是: 这种function如何正常执行? 解决这个问题是否存在一些共同的解决scheme或最佳实践?

HSV颜色范围表

我正在开发一个应用程序,在这个应用程序中,孩子们需要使用相机屏幕上的某个目标点来寻找某种颜色 – 类似增强现实。 我已经得到了所有的东西,但与RGB颜色。 对于每一种颜色,红色,绿色,蓝色,黄色,紫色等,我一直在testing和定义的RGB值的范围,以确定何时是什么颜色。 很多工作。 不过,我了解到使用HSV的效果更好。 但是我不想再为每种颜色设置范围的整个过程。 但是我根本无法在网上find它,我已经用googlesearch了两个小时了! 所以我正在寻找的是非常简单的:对于一组约8种标准颜色:红色,绿色,蓝色,黄色,紫色等相应的HSV范围。 例如:红色 – 0到20之间的色调,0.8到1.0之间的饱和度,0.8到1.0之间的值。 (不知道这是对的,只是一个例子) 我的意思是,某人已经有一段时间了!

是否有可能在应用程序中使用iOS 7的经过修改的Helvetica?

对于iOS 7,苹果公司做了一个特殊的修改版本的Helvetica Thin / Light,它有四舍五入的周期和冒号: 比较这个在Xcode中使用Helvetica-Neue Thin或Helvetica-Neue Light: 是否有可能开发具有圆形冒号和句点的特殊修改版本的应用程序? 编辑 :发现这些圆的冒号和时期不是由苹果定制devise的,他们是“字符替代”,你可以看到他们在你最喜欢的字体字形查看器。

从我的应用打开Gmail应用

我试图从我的应用程序发送电子邮件。 但是,我想要的是,如果用户在他/她的手机上有Gmail应用程序,则应该使用它发送邮件。 如果Gmail应用程序不可用,则应将用户redirect到邮箱。 那么如何知道用户是否包含Gmail应用程序,以及如何将用户redirect到该应用程序。