我曾经能够在启动iPhone模拟器后用我真正的mac键盘输入.在使用大量文本进行测试时,使用屏幕上的模拟器键盘进行打字非常糟糕.
无论我做什么,我都无法让键盘在模拟器中输入.即使我将"模拟硬件键盘"打开,它也不会输入任何内容.有人可以告诉我我做错了什么吗?有没有办法再使用真正的键盘输入?
我正在尝试实现viewWillTransitionToSizeiOS 8中引入的新方法(所有其他旋转方法已被弃用).我想知道现在的等价物didRotateFromInterfaceOrientation是什么,因为我们需要执行许多清理任务,我无法看到我们可以指定的块,UIViewControllerTransitionCoordinator以便在"转换"为新的时调用大小完成.谢谢.
我正在制作一个视图(通过揭示它),之后我需要发布一个通知(一旦动画完成).然而,应用程序的设计方式,隐藏视图(通过动画)时会发出另一个通知.基本上我有一个'showView'和'hideView'方法.每个人都这样做:
[NSAnimationContext runAnimationGroup:^(NSAnimationContext *context) {
[context setDuration: 0.25];
[[myView animator] setAlphaValue: 0];
} completionHandler:^{
// post notification now
}];
Run Code Online (Sandbox Code Playgroud)
问题是在后台的另一个线程中,我有一个定期计时器,它执行"健全性检查"以查看是否需要隐藏视图(如果不需要).这是一种积极的方法,但必要的是应用程序的许多组件响应不同的事件和场景.由于这个原因,我有时会得到一个'竞争条件',用户点击了'showView',但同时我们的一个线程感觉应该立即隐藏视图.
当两者都在主线程上发布通知时,应用程序会在SpinLock中无限期挂起.如果我能够弄清楚上面的动画块是否被"取消"(即在同一视图上执行的另一个动画块),我可以完全避免这种情况.在这种情况下,我不会发布通知,这将不会强制检查.
长话短说:我需要能够检查动画成功结束后是否调用'completionHandler',或者是否取消了.我知道在iOS中这是可能的,但我在OS X中找不到任何方法.请帮忙.
我完全像Apple提供的Sandboxed Helper App示例一样,所有这些都运行良好.我能够成功创建一个NSXPCConnection对象,并且还可以恢复我的远程对象(通过remoteObjectProxyWithErrorHandler).
但是,当我在代理对象上调用一个方法(在协议定义中定义)时,我收到了这个错误:
Failed to connect to launch agent: Error Domain=NSCocoaErrorDomain Code=4099 "Couldn’t communicate with a helper application.
Run Code Online (Sandbox Code Playgroud)
基本上无论我做什么,我都无法与我的帮助应用程序通信.我没有做任何花哨的事情,只是试图简单地调用帮助应用程序到NSLog()的东西.但它不起作用.奇怪的是我也没有从里面看到任何输出:
- (BOOL)listener:(NSXPCListener *)listener shouldAcceptNewConnection:(NSXPCConnection *)newConnection
Run Code Online (Sandbox Code Playgroud)
我怎么可能做错了?
更新:显然如果我在我的主应用程序上取消选中"启用应用程序沙盒",它就可以了!所以在启用沙盒之后出现了问题,之后它不想与我的帮助应用程序通信.我需要更多的权利吗?我已经在xcode下尝试了所有这些!
我对Core Data相对较新(来自SQLite背景).刚读完"iOS的核心数据"一书,但当我开始为具有以下型号的应用程序建模时,我留下了一些令人困惑的问题:
出于性能原因,我想对模型进行去规范化,并在"帐户"实体中添加"TotalAmountSpent"属性(如本书所示),这样我就可以在发生变化时继续更新.
在实践中,这似乎很难通过Core Data实现.我无法弄清楚如何正确地做到这一点(并且不知道正确的方法是什么).所以我的问题是:
a)我应该将'TotalAmountSpent'更改为Fetched Property吗?是否有性能影响(我知道它是懒惰加载但我几乎肯定会为每个帐户获取该属性).如果我这样做,我需要能够在给定的时间段(例如最后三天)内获得花在'startingBalance'上的总金额.这在SQL中看起来很简单,但我如何在Core Data中执行此操作?我读过我可以使用@sum聚合函数但是如何使用@sum过滤'date'?我还读了数据中的任何变化都需要刷新fetched属性.我如何'倾听'改变?我是在"付款"实体的'willSave'方法中做到的吗?
b)每次将新的付款添加到交易时,我是否应该使用传播并手动更新"TotalAmountSpent"?最好的地方是什么?我应该在重写的NSManagedObject的'willSave'方法中做到吗?我担心,如果在帐户上更新了"startingBalance"字段,更新所有相应的交易/付款将是一场噩梦.然后我必须加载每笔付款并计算花费的总金额和帐户的最终余额.如果有数千笔付款可怕
任何关于此事的指导都将非常感激.谢谢!
我已成功设法连接到Apple的反馈APNS服务器,但我不知道如何解压缩从fread()获得的二进制数据.有谁知道如何做到这一点?文档说前4个字节是时间戳,接下来的2个是令牌长度,其余是设备令牌.
在调用fread之后,如何将这些信息解压缩为可读字符?
我正在尝试将SQLite3数据库文件与我们的应用程序相关联,以便从电子邮件中轻松打开备份数据库.然而,以下似乎不起作用,因为Mail仍然无法识别该文件(在iPad和iPhone 4上):
<key>UTExportedTypeDeclarations</key>
<array>
<dict>
<key>UTTypeConformsTo</key>
<array>
<string>public.database</string>
<string>public.data</string>
</array>
<key>UTTypeDescription</key>
<string>App Database File</string>
<key>UTTypeIdentifier</key>
<string>com.company.App.db</string>
<key>UTTypeTagSpecification</key>
<dict>
<key>public.filename-extension</key>
<string>db</string>
<key>public.mime-type</key>
<string>application/x-sqlite3</string>
</dict>
</dict>
</array>
<key>CFBundleDocumentTypes</key>
<dict>
<key>CFBundleTypeName</key>
<string>App Database</string>
<key>CFBundleTypeIconFiles</key>
<array>
<string>Icon-Small.png</string>
<string>Icon.png</string>
</array>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>LSItemContentTypes</key>
<array>
<string>com.company.App.db</string>
</array>
<key>LSHandlerRank</key>
<string>Alternate</string>
</dict>
</dict>
Run Code Online (Sandbox Code Playgroud)
知道我做错了什么吗?
最初我的印象是它在插入/删除新行时使用表格行向上/向下动画,但我怀疑它是否正在这样做,因为即使列表中包含数千个项目也是如此流畅(否则会花费很多删除/插入工作的时间).
我是否正确地假设它只是在屏幕底部附加一个新的新闻列表实例,缩小上面的一个而底部的那个扩展以填满空间?
更新:
请看这个我的意思的视频:http://dl.dropbox.com/u/4960327/ReederAnim.mov
我正在Mac上编写一个实用程序,需要自动确定代理信息.我已经设法获取代理主机和端口(来自自动代理配置文件),但是如何从此获取钥匙串的用户名?
我知道您可以使用SecKeychainAddInternetPassword来获取代理密码,但我也不知道用户名.有没有办法获取用户名和密码?