代码之家  ›  专栏  ›  技术社区  ›  Theodore.K

为什么在课堂外使用“自我”?

  •  2
  • Theodore.K  · 技术社区  · 8 年前

    我在跟踪 this tutorial on GitHub 关于如何在iOS应用程序中实现SwiftHydropbox。在某一点上,它告诉我将此代码添加到ViewController

    import UIKit
    import SwiftyDropbox
    
    func myButtonInControllerPressed()
    {
        DropboxClientsManager.authorizeFromController(UIApplication.shared, controller: self, openURL: { (url: URL) -> Void in UIApplication.shared.openURL(url)})
    }
    

    然后我得到一个错误,说

    Use of unresolved identifier 'self'
    

    这大概是因为我在类之外声明了一个函数。我做错了什么?有没有人知道一个教程/示例应用程序,它可以实际工作,并且是最新的Swift和Xcode,可以教我如何使用SwiftHydropbox?

    1 回复  |  直到 8 年前
        1
  •  2
  •   Luca Angeletti    8 年前

    片段前面的段落确实说:

    您可以通过调用 authorizeFromController:controller:openURL:browserAuth 方法 应用程序的视图控制器 .

    enter image description here

    所以它是告诉你写这个片段 内部 您的视图控制器(使用 self 有意义)。

    这里有一个例子

    class Controller: UIViewController {
    
        func myButtonInControllerPressed() {
            DropboxClientsManager.authorizeFromController(UIApplication.shared,
                                                          controller: self,
                                                          openURL: { (url: URL) -> Void in
                                                            UIApplication.shared.openURL(url)
            })
        }
    
    }