Tag: macos

我应该忽略xcodeproject / project.pbxproj文件?

在一个XCode项目中,我已经修改了xcodeproject / project.pbxproj文件,但是对于我来说没有用的信息。 我应该忽略这个文件和xcodeproject / projectxworkspace / username.xcuserdata / UserInterfaceState.xcuserstate文件?

下载iCloud文件的方法? 很混乱?

我在我的应用程序中支持基本的iCloud支持(同步更改,无处不在等),但迄今为止一个至关重要的缺失是缺less对云中存在(或已有更改)文件的“下载”支持,与当前磁盘上的内容同步。 我在我的应用程序中添加了以下方法,基于一些苹果提供的代码,进行了一些调整: 下载方法: – (BOOL)downloadFileIfNotAvailable:(NSURL*)file { NSNumber* isIniCloud = nil; if ([file getResourceValue:&isIniCloud forKey:NSURLIsUbiquitousItemKey error:nil]) { // If the item is in iCloud, see if it is downloaded. if ([isIniCloud boolValue]) { NSNumber* isDownloaded = nil; if ([file getResourceValue:&isDownloaded forKey:NSURLUbiquitousItemIsDownloadedKey error:nil]) { if ([isDownloaded boolValue]) return YES; // Download the file. NSFileManager* fm = [NSFileManager […]

安全的内存对于Swift对象

我正在写一个快速的应用程序,需要处理内存中的私钥。 由于这些对象的敏感性,当对象被释放时,这些键需要被清除(也被写为全零),并且内存不能被分页到磁盘(通常使用mlock()完成)。 在Objective-C中,您可以提供一个自定义的CFAllocator对象,它允许您使用自己的函数来分配/释放/重新分配对象使用的内存。 所以一个解决scheme是在objective-c中实现一个“SecureData”对象,该对象使用自定义的CFAllocator(也在objective-c中)在内部创build一个NSMutableData对象。 然而,有没有办法让我提供我自己的自定义内存分配函数的纯Swift对象(例如,一个结构或[UInt8])? 还是有更好的,“适当”的方式来实现这样的快速安全的内存?

Objective-C Xcode4中的debugging技巧?

通过Flex-Flash IDE,我可以在代码中设置断点,并在运行时查看相应窗口中variables的值。 现在,我想出了在Xcode中可以find'variables'的窗口,我可以看到所有的variables,但是这些variables的值不能被看到。 我所有的是数据types和一堆hex数字(指针?)。 我该如何debugging我的代码? 我在哪里可以看到我的variables的值,而不必logging在我的代码? 我想用一堆键/值对来查看NSDictionary值。 但也是任何其他NSObject的事情。 我已经阅读了一些关于重写描述方法的内容,但是关于本地对象呢?

两个mac。 一个iPhone开发者许可证。 可能?

我为一家有兴趣构buildiPhone应用程序的公司工作。 但是,我们在一个问题上并不清楚: iPhone开发人员证书一次在多台计算机上工作吗?

有没有办法将iOS应用程序转换为Mac OS X应用程序?

有什么办法将现有的iPhone应用程序移植到Mac OS X应用程序?

如何让Mac OS X防火墙永久允许我的iOS应用程序?

我正在编写一个iOS应用程序,其中包括一个telnet服务器。 当然,它一开始就开始聆听连接。 当我在模拟器中运行应用程序时,Mac OS X(我碰巧在10.7.3)提示我允许或拒绝我的应用程序接受传入的networking连接。 这是Mac OS X用于所有未签名的联网应用程序的标准防火墙消息。 我厌倦了每天点击“允许”五十次或更多次,所以我寻求一种将我的应用永久添加到防火墙允许的应用列表的方式。 我试过以下。 打开活动监视器,而我的应用程序运行。 select我的应用程序 点击“检查”。 转到打开文件和端口选项卡。 第一条线之一是我的应用程序的确切path。 复制并粘贴此path。 打开防火墙…高级设置。 点击+(添加)button。 浏览到应用程序path并select它,从而将其添加到允许传入连接的应用程序列表中。 最后一步有一个重要的决定。 您可以添加.app应用程序包,或在该包上显示内容,并在其中添加“Unix可执行文件”。 我已经尝试了两种方法。 有趣的是,防火墙实际上会停止警告你关于应用程序的一段时间。 然而,经过几次运行,我不清楚哪个事件实际上导致了这个变化,但是对于我来说大概在半小时之内发生,一般来说,防火墙会再次发出警告。 如何设置防火墙永久允许我的iOS应用程序? 当然,我可以通过禁用Mac OS X防火墙来绕过这个问题。 我也可以避免再一次把它砍下来,让我的脚分裂。 这些行动都不推荐给我。 你会build议什么?

使用dispatch_group_async的并发代码的性能比单线程版本慢得多

最近我一直在做大量的随机数生成“正态分布”钟形曲线的实验。 方法很简单: 创build一个整数数组并将其归零。 (我使用2001整数) 重复计算该数组中的索引,并将该数组中的条目编入索引,如下所示 循环999或1000次。 在每次迭代中: 以中心值(1000)为数组索引 生成一个随机数= + 1 / -1。 并将其添加到数组索引 在循环结束时,在计算的数组索引处增加值。 由于随机值0/1倾向于频繁出现,因此上面内部循环的结束索引值倾向于保持接近中心值。 比起始值大得多/小得多的指标值越来越不寻常。 在大量重复之后,数组中的值呈现正态分布钟形曲线的形状。 然而,我使用的高质量的随机函数arc4random_uniform()相当慢,并且需要很多迭代才能生成平滑的曲线。 我想计划10亿(十亿)点。 在主线程上运行,大约需要16个小时。 我决定重写计算代码来使用dispatch_async,并在我的8核心Mac Pro上运行它。 我结束了使用dispatch_group_async()提交8个块,dispatch_group_notify()在所有块完成处理时通知程序。 为了简化第一遍,所有8个块写入相同的NSUInteger数组。 在读取/修改写入数组条目时,出现竞争条件的可能性很小,但是在这种情况下,这只会导致一个值丢失。 我正打算在稍后添加一个锁到数组增量(或者甚至可以在每个块中创build单独的数组,然后将它们相加)。 无论如何,我重构代码使用dispatch_group_async()并计算每个块中的总值的1/8,并设置我的代码运行。 对我来说,并发代码尽pipe最大化了我Mac上的所有内核,但运行速度比单线程代码慢。 单线程运行时,每秒可以得到大约17,800个点。 当使用dispatch_group_async运行时,性能下降到更像665点/秒,或约1/26的速度 。 我已经改变了我提交的块数 – 2,4或8,没关系。 性能是可怕的。 我也尝试使用dispatch_async提交所有8个块,没有dispatch_group。 这也没有关系。 目前没有阻塞/locking正在进行:所有块全速运行。 对于为什么并发代码运行速度慢,我感到十分困惑。 现在的代码有点混乱,因为我重构了它的单线程或同时工作,所以我可以testing。 以下是运行计算的代码: randCount = 2; #define K_USE_ASYNC 1 #if K_USE_ASYNC dispatch_queue_t highQ = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0); […]

如何在Xcode中创build发布版本?

为什么当我构build一个应用程序时,Xcode会创build一个debugging版本? 我想创build一个发布版本。 我怎样才能做到这一点?

在OS X 10.10(优胜美地Beta版)中,如何使用iOS 6.1模拟器进行testing?

我试图在Yosemite Beta中使用Xcode 5来定位iOS 6.1。 然而,模拟器甚至不会运行应用程序,或显示默认图标(我得到的是一个黑色的iOS形状的屏幕,家庭或锁button不工作)。 7.1模拟器工作正常。 我也注意到,Xcode 6 Beta甚至不提供7.1之前的模拟器版本。 这是否表明,即使在OS X 10.10的最终版本中,也不可能在7.x之前模拟iOS版本? 这对我来说似乎很不合理。 这是预期的行为? 编辑:所以我已经尝试重新安装并重新下载6.1模拟器之前发布这个问题,没有做任何改变的情况。 我也查了其他类似的问题,涉及升级到小牛(OS X 10.9),但支持的版本似乎奇怪的select。 我会把这个问题提交给苹果公司,并将我的调查结果报告给我们,除非有人回复谁有更具体的信息。