标签: ios12

14
推荐指数
3
解决办法
7062
查看次数

Swift 4.2无法将类型'(UIImagePickerController.InfoKey).Type'的值转换为预期的参数类型'UIImagePickerController.InfoKey'

我的下面的代码与swift 4工作得很好但升级到swift 4.2后我收到了这个错误,我浪费了3个小时搜索问题但是失败了.如果有人可以指导我如何解决这个问题.

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {

    if postType == 2 {
        let image = info[convertFromUIImagePickerControllerInfoKey(UIImagePickerController.InfoKey)] as! UIImage
        mediaType.image = image
    } else {
        videoURL = info[convertFromUIImagePickerControllerInfoKey(UIImagePickerController.InfoKey.mediaURL)] as? URL
        do {
            let asset = AVURLAsset(url: videoURL!, options: nil)
            let imgGenerator = AVAssetImageGenerator(asset: asset)
            imgGenerator.appliesPreferredTrackTransform = true
            let cgImage = try imgGenerator.copyCGImage(at: CMTime.init(value: 0, timescale: 1), actualTime: nil)
            let thumbnail = UIImage(cgImage: cgImage)
            self.mediaType.image = thumbnail
        } catch {
            print("*** Error generating thumbnail: \(error)")
        } …
Run Code Online (Sandbox Code Playgroud)

uiimagepickercontroller ios swift ios12

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

UIKitCore崩溃[UIViewController viewDidMoveToWindow:shouldAppearOrDisappear:]仅限iOS 12

我得到了大量的崩溃报告给了Crashlytics.这只发生在iOS 12上,我不知道如何重现这一点.也许用户在WKWebView上并尝试从提示中输入密码31 SafariServices 0x21d216740 __107+[_SFAutomaticPasswordInputViewController inputViewControllerWithAutoFillContext:passwordRules:completion:]_block_invoke.29 + 104

如果有人有类似的崩溃或想法,我们非常感谢.

更新:此问题正在跟踪:https://github.com/firebase/firebase-ios-sdk/issues/2283感谢Igor

Crashed: com.apple.main-thread
0  libsystem_kernel.dylib         0x207743df8 __abort_with_payload + 8
1  libsystem_kernel.dylib         0x20773d838 abort_with_payload_wrapper_internal + 100
2  libsystem_kernel.dylib         0x20773d7d4 abort_with_payload_wrapper_internal + 34
3  libobjc.A.dylib                0x206d7d4b4 _objc_fatalv(unsigned long long, unsigned long long, char const*, char*) + 112
4  libobjc.A.dylib                0x206d7d40c __objc_error + 42
5  libobjc.A.dylib                0x206d94af0 weak_entry_insert(weak_table_t*, weak_entry_t*) + 314
6  libobjc.A.dylib                0x206d95a60 objc_initWeak + 360
7  UIKitCore                      0x23457508c -[UIViewController viewDidMoveToWindow:shouldAppearOrDisappear:] + 1628
8  UIKitCore                      0x234fcaff8 -[UIView(Internal) …
Run Code Online (Sandbox Code Playgroud)

ios ios12 safariservices

14
推荐指数
1
解决办法
2404
查看次数

iOS 12+内存泄漏 - WKWebView和UIWebView

这不是一个问题,但我在这里张贴,希望能够拯救别人的理智(我只花了一天的时间来解决这个问题).我已经发现了iOS 12.0+中出现的内存泄漏,它影响了WKWebView和UIWebView.只要您实例化2个Web视图中的任何一个,就会出现泄漏.Instruments将漏洞识别为来自JavaScriptCore,我猜这是为什么它同样会影响两个webview.

当我决定尝试更旧的iOS版本(11.4 - 12.0之前的版本)时,我试图弄清楚我做错了什么,我注意到泄漏已经消失了.我每次都可以重现这一点.

要重现,您需要做的就是在类上分配webview的实例.

let webview = WKWebView()
Run Code Online (Sandbox Code Playgroud)

要么

let webview = UIWebView()
Run Code Online (Sandbox Code Playgroud)

马上,您会注意到iOS 12.0/12.1上有4个泄漏,如果您在iOS 11.4上运行代码,这些泄漏将不再存在.有4个单独的泄漏; 3 x 96字节和1 x 128字节.

泄漏WKWebView

我通过BugReporter向Apple提交了一个错误,在Openradar上重复:https://openradar.appspot.com/radar id = 6132657108811776

memory-leaks uiwebview javascriptcore wkwebview ios12

14
推荐指数
1
解决办法
1939
查看次数

什么是Xcode 9中的主线程检查器

我已经检查了Xcode 9文档中的新内容,我发现了这一点

在此输入图像描述

但我不明白为什么我可以用新的Xcode 9来使用它

ios swift ios12

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

ReplayKit的RPSystemBroadcastPickerView没有显示preferredExtension

RPSystemBroadcastPickerView用来显示一个选择器视图,用户可以从中选择一个广播服务来记录屏幕.根据文档,preferredExtension应该允许我设置选择器显示哪个广播扩展.

代码非常简单:

let broadcastPickerView = RPSystemBroadcastPickerView(frame: CGRect(x: 0, y: 0, width: 51, height: 51))
view.addSubview(broadcastPickerView)
broadcastPickerView.preferredExtension = "com.milan.nosal.broadcast-extension"
broadcastPickerView.backgroundColor = .clear
broadcastPickerView.showsMicrophoneButton = false
Run Code Online (Sandbox Code Playgroud)

"com.milan.nosal.broadcast-extension"我希望选择器提供的扩展的包标识符在哪里(我多次检查其正确性).

但是,当点击控件时,弹出窗口首先显示空选:

在此输入图像描述

关闭它后,再次点击控件,它会显示正确的扩展名.这仅在应用程序安装(或重新安装)后才会发生,在显示后,它会始终显示.

这是iOS 12测试版的错误,还是我做错了什么?我可以"预注册"扩展程序来解决这个问题吗?

编辑:

发布应用程序后,我们遇到了与用户相同的问题,但这次甚至没有多次点击控件有帮助 - 选择器总是空的!似乎扩展安装正确,因为它可以从控制中心启动.

现在正式发布.

ios swift replaykit ios12

13
推荐指数
2
解决办法
1864
查看次数

无效的 Siri 支持 - 自定义意图的本地化描述

我已将二进制文件上传到 iTunes Connect,但收到了这封电子邮件:

我们发现您的应用程序“xxx”最近交付的一个或多个问题。您的交付成功,但您可能希望在下次交付时更正以下问题:

无效的 Siri 支持 - 自定义意图的本地化描述:“xxxxxx”未找到语言环境:zh_CN

无效的 Siri 支持 - 自定义意图的本地化标题:“xxxxxx”未找到区域设置:zh_CN

我在 Intents.strings 中为“zh_CN”语言添加了本地化的标题和描述,但没有任何效果。 图片

有人能告诉我如何解决吗?

shortcut sirikit ios12

13
推荐指数
3
解决办法
4746
查看次数

录制因多任务处理和内容调整大小而中断

尝试使用RPScreenRecorder开始屏幕录制.我收到以下错误:

录制因多任务处理和内容调整大小而中断

func startRecording() {
    let recorder = RPScreenRecorder.shared()
    recorder.startRecording(handler: { (error) in
        if let unwrappedError = error {
            print(unwrappedError.localizedDescription)
        } else {

        }
    })
}
Run Code Online (Sandbox Code Playgroud)

在iOS 12.0之前一切正常.从更新我得到上面的错误.

swift replaykit rpscreenrecorder ios12

12
推荐指数
1
解决办法
1801
查看次数

CMotionManager在实例化时崩溃

我在为Core Motion实例化我的CMMotionManager对象时遇到了崩溃.这是在运行iOS 12.0.1的iPhone X上.

我可以通过单视图应用程序使用以下视图控制器可靠地重现这一点.

import UIKit
import CoreMotion

class ViewController: UIViewController {
    var motion: CMMotionManager?
    override func viewDidLoad() {
        super.viewDidLoad()

        // This causes a crash on iPhone Xs, iOS 12.0.1
        self.motion = CMMotionManager()
    }
}
Run Code Online (Sandbox Code Playgroud)

完整示例项目位于https://github.com/doctorcolinsmith/motiontestcrash/tree/master

运行上面的代码时,我在调试器中输出以下输出的线程上出现故障.

=================================================================
Main Thread Checker: UI API called on a background thread: -[UIApplication applicationState]
PID: 3634, TID: 630341, Thread name: com.apple.CoreMotion.MotionThread, Queue name: com.apple.root.default-qos.overcommit, QoS: 0
Backtrace:
4   libobjc.A.dylib                     0x000000019b0d3894 <redacted> + 56
5   CoreMotion                          0x00000001a19337a4 CoreMotion + 305060
6   CoreMotion                          0x00000001a1933cd8 …
Run Code Online (Sandbox Code Playgroud)

ios core-motion swift ios12

12
推荐指数
1
解决办法
1825
查看次数

如何 NSKeyedUnarchiver.unarchiveObject

我有一个有效但已弃用的工作代码:

这部分很好:

 let archived = try? NSKeyedArchiver.archivedData(withRootObject: [defaultRecord] as NSArray, requiringSecureCoding: false)
Run Code Online (Sandbox Code Playgroud)

这是已弃用的:

 let records = NSKeyedUnarchiver.unarchiveObject(with: unarchivedObject as Data) as? [Record]
Run Code Online (Sandbox Code Playgroud)

'unarchiveObject(with:)' 在 iOS 12.0 中被弃用:使用 +unarchivedObjectOfClass:fromData:error: 代替

听起来很简单,但我无法找到一种方法来使用建议的方法而不会在我尝试的每个组合中都出错。

任何工作示例?

nskeyedunarchiver swift ios12

12
推荐指数
1
解决办法
9580
查看次数