小编gch*_*ita的帖子

Xcode 中的框架图标颜色

Linked Frameworks And Libraries 选项卡中的这些图标有什么区别?为什么有些是默认的黄色,有些是白色的?

白色框架图标和默认框架图标

xcode build ios

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

在javascript中调用原生swift函数

很抱歉,如果这个问题已经被问过,但我能找到的所有答案都是复杂的解决方案。

我有一个viewController,即webView。我将WKWebView, 添加到 WebKit 库的视图中,并打开简单的 url。在我的 ViewController 内部,我有一个名为 的本机函数showAd。当用户按下用 javascript 实现的按钮时,它会显示 call showRewardsAd。我将断点设置为 userContentController,但是它永远不会到达那里。

func showAd(){
   print("invoked")
}
extension WFWebViewController: WKScriptMessageHandler{
    func userContentController(_ userContentController: WKUserContentController, didReceive message: WKScriptMessage) {
        if message.name == "showRewardsAd"{
            self.showRewards()
            webView.evaluateJavaScript("test", completionHandler: nil)
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我的目标是简单地允许从 javascript 部分调用此函数。据我所知,如果我想在 swift 中调用 javascript 函数,我只需说:

 webview.addJavascriptInterface('javascript: function_name();')
Run Code Online (Sandbox Code Playgroud)

然而,就我而言,我想以相反的顺序进行。在 Javascript 代码中调用 swift 函数。

javascript webkit ios swift

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

模块“Alamofire”没有名为“SessionManager”的成员

为什么我收到这个错误,我没有。我已经在使用Alamofire 5时将Alamofire更改为AF。请指导有什么问题以及需要更改的内容。下面是我遇到错误的代码:

 private func callAlamoFireFormalData(makeThisFunction : @escaping (AFDataResponse<Any>)->Void )
{
    AF.request(url, method: httpMethod, parameters: paramters, encoding: encoding, headers: HTTPHeaders(self.headers ?? [:]))
        //.validate(statusCode: 200..<300)
        .responseJSON { response in
            
            //print("\(response.response?.statusCode)")
            guard response.response?.statusCode != 401
                else{
                    
                    Alamofire.SessionManager.default.session.getAllTasks { tasks in
                        tasks.forEach { $0.cancel() }
                    }
                    Helper.setApiToken(token: "")
                    Helper.removeUserInfo()
                    if var topController = UIApplication.shared.keyWindow?.rootViewController {
                        if let presentedViewController = topController.presentedViewController
                        {
                            topController = presentedViewController
                            topController.present(UIStoryboard.init(name: "Main", bundle: Bundle.main).instantiateViewController(withIdentifier: "InitialNAV"), animated: true, completion: nil)
                        }
                        
                        // topController should now be your topmost view controller
                    } …
Run Code Online (Sandbox Code Playgroud)

iphone ios swift alamofire xcode11

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

搜索时如何更改 UISlider 拇指的大小

我想让我的 UISlider 拇指大小在我擦洗滑块时发生变化,就像搜索器在 Apple Music 或 Spotify 中的工作方式一样。这可能与香草 UISlider 有关吗?任何有关如何执行此操作的指示将不胜感激。谢谢

animation uikit uislider ios swift

4
推荐指数
1
解决办法
388
查看次数

使用和不使用数组解码不同类型

我正在尝试按如下方式解码错误,我以数组格式处理的大部分错误[String],但在少数情况下,错误不是数组格式,只是一个String.

如果错误以数组格式出现errors,则名称为,但如果是字符串格式,则为error. 我该如何处理这种情况?

我怎么能处理这种情况?

struct CustomError: Codable {
  let errors: [String]
}

private func errorDecoding(data : Data) {
 let decoder = JSONDecoder()
 do {
  let errorData = try decoder.decode(CustomError.self, from: data)
 } catch {
  // TODO
 }
}
Run Code Online (Sandbox Code Playgroud)

swift codable

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

如何在 Alamofire swift 5 中进行 SSL 公钥固定

我正在尝试将 SSL 公钥固定集成到 Alamofire swift 5 中,但我发现ServerTrustPolicyManager它已被弃用。请帮助我融入。谢谢。

ios swift alamofire public-key-pinning swift5

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