小编Rol*_*and的帖子

SFHFKeychainUtils.iOS钥匙串.ARC兼容

我想知道是否有人使用SFHFKeychainUtils设法修改它们以兼容ARC.更确切地说

NSDictionary *attributeResult = NULL;
NSMutableDictionary *attributeQuery = [query mutableCopy];
[attributeQuery setObject: (id) kCFBooleanTrue forKey:(__bridge id) kSecReturnAttributes];
OSStatus status = SecItemCopyMatching((CFDictionaryRef) attributeQuery,(CFTypeRef *)(attributeResult));
Run Code Online (Sandbox Code Playgroud)

我试过了

OSStatus status = SecItemCopyMatching((__bridge CFDictionaryRef) attributeQuery,(CFTypeRef *)(attributeResult));
Run Code Online (Sandbox Code Playgroud)

CFTypeRef subAttributeResult = (CFTypeRef *)(objc_unretainedPointer(attributeResult));
OSStatus status = SecItemCopyMatching((__bridge CFDictionaryRef) attributeQuery,(CFTypeRef *)(subAttributeResult));
Run Code Online (Sandbox Code Playgroud)

这2个是我设法得到的唯一两种方法没有错误.通过在这里添加objc_XXX而不是CFTypeRef来实现任何其他方法并且在那里得到错误(从ARC中禁止从obj-c指针到CFTypeRef的隐式转换,将x参数传递给y参数丢弃限定符).显然,第一段代码也会出错.虽然构建时没有出现任何错误,但在到达此部分代码时,应用程序会因EXC_BAD_ACCESS而崩溃.

完整SFHFKeychainUtils的链接:https://github.com/ldandersen/scifihifi-iphone/tree/master/security

有什么帮助吗?谢谢.

iphone keychain ios automatic-ref-counting sfhfkeychainutils

15
推荐指数
2
解决办法
1万
查看次数

UIAlertViews,UIActionSheets和keyWindow问题

我创建了一个iOS 7密码副本,我有这个问题,我似乎无法解决.我需要将锁定屏幕视图放在其他所有内容之上,因此应用程序在iOS的多任务视图中有所涉及,因此我将其直接添加到keyWindow.到目前为止一切都很好.

当我必须显示锁定屏幕时,如果有一个alertViewactionSheet(alertView在这篇文章中只提及s,为了保持简单),就会出现问题.已经多次回答过alertView,iOS 7 中没有对s的引用,这是真的,它们显示的窗口是_UIModalItemHostingWindow2 UIView秒,实际上没有引用alertView.

_UIModalItemHostingWindow 也成为新的keyWindow,所以它在其他一切之上,但[UIApplication sharedApplication].windows如果我将锁定屏幕添加到我的前者keyWindow(默认情况下keyWindow,如果你愿意的话),它就无法在意义中找到,它将位于alertView其暗淡的背景之下,所以用户在解雇之前不能与锁屏交互alertView.另一个选项在下面进一步详述.

锁定屏幕的工作方式如下:在applicationDidEnterBackground其上检查是否启用了密码; 如果它已启用并且密码持续时间为0(用户选择立即锁定应用程序),它会立即添加锁定屏幕,因此它会覆盖多任务视图中的应用程序.现在,我上面提到的选项是添加alertView到这个_UIModalItemHostingWindow窗口,但是当返回到应用程序时,锁定屏幕视图显示延迟1秒(即使我在进入后台之前添加了它!)和应用程序多任务处理视图中没有任何内容.(目前它也显示在错误的位置,如果你继续下载它,那是固定的,但我还没有推动提交).

我试图隐藏removeFromSuperview这个_UIModalItemHostingWindow,但是当回到应用程序时,alertView动画仍然像刚刚被解雇一样运行.我怀疑上面提到的延迟也是由于Apple alertViews回到前台时的处理方式.

我也尝试创建一个新窗口并使其成为新的keyWindow,但同样的事情发生.

这是一个关于这个的小讨论,涵盖了我尝试的所有内容,也许我在这篇文章中遗漏了一些东西. https://github.com/rolandleth/LTHPasscodeViewController/issues/16

有任何想法吗?除了创建的每一个手动引用alertViewactionSheet我的应用程序里面,因为我试图找到密码库,而不是我自己的应用程序修复; 我可以找到脏的解决方法,没问题:)

更新:窗口_UIAlertOverlayWindow是否actionSheet使用而不是a alertView,但就我所知,它的行为相同.

iphone objective-c uiwindow uialertview ios

5
推荐指数
1
解决办法
2190
查看次数