Tag: ios

CloudKit:“内部错误”(1/4000); “无法获得签名证书”>

我在模拟器上运行,应用程序工作正常,但一旦在iPhone设备上崩溃 – 在discoverUserInfo ::发生错误 discoverUserInfo是从下面的Apple的CloudKit示例代码复制的代码。 这是苹果的事情,还是我的? – (void)discoverUserInfo:(void (^)(CKDiscoveredUserInfo *user))completionHandler { [self.container fetchUserRecordIDWithCompletionHandler:^(CKRecordID *recordID, NSError *error) { if (error) { [self showAlert]; // In your app, handle this error in an awe-inspiring way. NSLog(@"An error occured in %@: %@", NSStringFromSelector(_cmd), error); //abort(); } else { [self.container discoverUserInfoWithUserRecordID:recordID completionHandler:^(CKDiscoveredUserInfo *user, NSError *error) { if (error) { […]

如何知道UIWebView何时完成渲染(不加载)?

我知道什么时候它完成加载…(webViewDidFinishLoad),但我想使用 [webView.layer renderInContext:UIGraphicsGetCurrentContext()]; 从UIWebView创build一个图像。 偶尔我会在webView完成其渲染之前获取图像。 我可以使用performSelector延迟图像的获取,但等待的数量是任意的和脆弱的。

如何禁用Xcode 9中的字体平滑?

我有一个伟大的编程字体Deccy ,只有在Xcode中禁用字体平滑(反锯齿)才能看起来不错。 使用Xcode 8,下面的方法可以做到这一点: defaults write com.apple.dt.Xcode NSFontDefaultScreenFontSubstitutionEnabled -bool YES defaults write com.apple.dt.Xcode AppleAntiAliasingThreshold 24 但是这不再适用于Xcode 9。 是否有可能在Xcode 9中禁用字体平滑?

使用自定义模式演示处理通话状态栏

问题 在通话过程中用UIViewControllerAnimatedTransitioning呈现UINavigationController (具有根视图控制器,已经自然按下了),我注意到了一些奇怪的行为。 如果在显示导航控制器后启用通话状态栏,则导航控制器将按预期方式切换其视图。 但是当通话结束时,控制器不会将其视图移回,在状态栏下留下20p的间隔。 如果在呈现控制器之前启用通话状态栏,则控制器根本不占用状态栏,导致44p高的导航栏的4p从40p状态栏下面窥视。 当通话结束时,控制器将其视图向下移动以适应正常的20p状态栏。 *注意:这是在模拟器上testing的,由于启用/禁用通话状态栏非常方便,但是testing人员在实际的手机上观察到了这种现象。 我的(部分)解决方法 如果状态栏是不正常的高度,我会在演示期间通过调整控制器的框架来解决问题: @interface CustomAnimationController : NSObject <UIViewControllerAnimatedTransitioning> @end @implementation CustomAnimationController – (void)animateTransition:(id<UIViewControllerContextTransitioning>)transitionContext { UIViewController *toController = [transitionContext viewControllerForKey:UITransitionContextToViewControllerKey]; UIView *container = [transitionContext containerView]; CGRect frame = [transitionContext finalFrameForViewController:toController]; if (CGRectEqualToRect(frame, CGRectZero)) { // In my experience, the final frame is always a zero rect, so this is […]

CredStore执行查询错误

我正在执行对我的应用程序后端的API调用时遇到问题,现在每个连接都提示 CredStore – performQuery – Error copying matching creds. Error=-25300, query={ atyp = http; class = inet; "m_Limit" = "m_LimitAll"; ptcl = http; "r_Attributes" = 1; srvr = "myappsurl.com"; sync = syna; } 我有点迷路,因为我不确定是什么造成了这个问题,或者CredStore做了什么。 CredStore在iOS中的用途是什么?

从Swift转换为objective-c的工具

我知道大部分的问题都是关于从objective-c转换到swift的,但是我正在寻找一个可以把swift代码转换成objective-c的工具。 当我search所有我发现是快速的objective-c。 是的 – 我知道我可以把swift代码放在一个桥头的objective-c项目中 – 这不是我要找的东西。 我需要一个将swift代码转换为objective-c代码的工具。 有这样的事吗?

用相机进行人脸检测

我如何才能像“相机”那样实时进行人脸检测? 我注意到, AVCaptureStillImageOutput在10.0之后被弃用,所以我使用AVCapturePhotoOutput来代替。 但是,我发现我为面部检测保存的图像不是很满意? 有任何想法吗? UPDATE 之后试一试@Shravya Boggarapu提到。 目前,我使用AVCaptureMetadataOutput来检测没有CIFaceDetector的人脸。 它按预期工作。 然而,当我试图画出脸的界限时,似乎错位了。 任何想法? let metaDataOutput = AVCaptureMetadataOutput() captureSession.sessionPreset = AVCaptureSessionPresetPhoto let backCamera = AVCaptureDevice.defaultDevice(withDeviceType: .builtInWideAngleCamera, mediaType: AVMediaTypeVideo, position: .back) do { let input = try AVCaptureDeviceInput(device: backCamera) if (captureSession.canAddInput(input)) { captureSession.addInput(input) // MetadataOutput instead if(captureSession.canAddOutput(metaDataOutput)) { captureSession.addOutput(metaDataOutput) metaDataOutput.setMetadataObjectsDelegate(self, queue: DispatchQueue.main) metaDataOutput.metadataObjectTypes = [AVMetadataObjectTypeFace] previewLayer = AVCaptureVideoPreviewLayer(session: […]

UIImage方面适合并alignment顶部

它看起来像aspect fit默认情况下图像alignment框架的底部。 有没有办法来覆盖alignment,同时保持aspect fit完好? **编辑** 这个问题早于自动布局。 事实上,在这个问题被问到的同一个星期,WWDC在2012年展示了自动布局

为什么在使用ARC + NSZombieEnabled时不会释放对象

我将我的应用程序转换为ARC,并注意到在视图控制器被释放时,在我的一个视图控制器中分配的一个对象没有被解除分配。 花了一段时间才弄明白为什么。 我在debugging过程中为我的项目启用了“僵尸对象”,事实certificate这是事实。 考虑下面的应用程序逻辑: 1)用户调用RootViewController中的动作,使SecondaryViewController被创build并通过presentModalViewController:animated呈现presentModalViewController:animated 。 2) SecondaryViewController包含一个ActionsController ,它是一个NSObject子类。 3) ActionsController在初始化时通过NSNotificationCenter观察一个通知,当它被解除分配时停止观察。 4)用户closuresSecondaryViewController返回到RootViewController 。 启用僵尸对象closures,上述工作正常,所有的对象被释放。 使用ActionsController上的启用僵尸对象不会解除分配,即使SecondaryViewController被释放。 这导致我的应用程序b / c中的问题NSNotificationCenter继续发送通知给ActionsController和结果处理程序导致应用程序崩溃。 我创build了一个简单的应用程序来说明这个在https://github.com/xjones/XJARCTestApp 。 查看与启用僵尸对象控制台日志开/关来validation这一点。 问题(S) 这是启用僵尸对象的正确行为? 我应该如何实现这种types的逻辑来消除这个问题。 我想继续使用启用僵尸对象。 编辑#1:根据凯文的build议,我已经提交给苹果和openradar在http://openradar.appspot.com/10537635 。 编辑#2:澄清一个很好的答案 首先,我是一名经验丰富的iOS开发人员,我完全了解ARC,僵尸对象等。如果我错过了某些东西,当然,我很欣赏任何照明。 其次,对于此特定崩溃的解决方法是,当secondaryViewController被释放时,将observer作为观察者移除。 我也发现,如果我明确地设置actionsController actionsController = nil当secondaryViewController dealloc'ed它将被dealloc'ed。 这两个都不是很好的解决方法B / C他们实际上要求您使用ARC,但代码,如果您不使用ARC(例如显式dealloc中的零iVars)。 一个特定的解决scheme也无助于确定何时这将成为其他控制器中的问题,因此开发人员可以确定何时/如何解决此问题。 一个好的答案可以解释如何确定性地知道在使用ARC + NSZombieEnabled时需要对某个对象做些特殊的事情,这样就可以解决这个具体的例子,并且也可以将整个项目作为一个整体应用,而不用再为其他类似项目问题。 完全有可能没有好的答案,因为这可能是XCode中的一个错误。 感谢所有!

为什么在popViewController之后ARC没有释放内存

我在UINavigationController中推送和popupViewControllers。 我正在跟踪我的应用程序的内存消耗。 虽然推新viewController内存消耗逐渐增加,但是当我popup相同的ViewController使用[self.navigationController popViewControllerAnimated:NO]; 内存消耗不减less,但不变。 该特定的viewController可以被用户多次推送和popup,这可能导致应用程序在RAM中的高内存消耗。 我应该怎么做来优化我的内存消耗?