使用Swift Xcode中其他文件的函数

Eri*_*ker 6 xcode ios swift

如何在单独的swift文件中编写函数并将其(导入它)用于我的ViewController.swift文件?我编写了很多代码,所有代码都在ViewController.swift文件中,我真的需要让它看起来很好并将函数放在不同的文件上,以获得更清晰的代码.我有处理解析HTML的函数,处理订购结果的函数,呈现结果,响应用户操作等等.非常感谢任何帮助!

if let htmlString = String(contentsOfURL: checkedUrl, encoding: NSUTF8StringEncoding, error: nil) {


                // Parsing HTML

                let opt = CInt(HTML_PARSE_NOERROR.value | HTML_PARSE_RECOVER.value)

                var err : NSError?

                var parser = HTMLParser(html: htmlString, encoding: NSUTF8StringEncoding, option: opt, error: &err)

                var bodyNode = parser.body


                // Create an array of the part of HTML you need

                if let inputNodes = bodyNode?.findChildTags("h4") { //inputNodes is an array with all the "h4" tag strings

                    for node in inputNodes {

                        let result = html2String(node.rawContents)

                        println("Nyheter: \(result)")

                    }
                }
Run Code Online (Sandbox Code Playgroud)

当我将该函数添加到单独的swift文件时,如何使用"速记"在我的ViewDidLoad方法中使用它?一个简短的关键字抓住那块代码并使用它?

Tee*_*ppa 9

简单.您只需在Xcode项目中创建一个新的Swift文件(文件 - 新建 - 文件 - Swift文件或只是⌘-N)并将您的函数和类放在那里.无需在视图控制器文件中导入任何内容,因为两个文件都是同一个包的一部分,因此可以看到彼此的功能和类型(除非标记为私有).

func parseHtml(url: NSURL) -> String { ... your code goes here ... }
Run Code Online (Sandbox Code Playgroud)


Moh*_*din 5

你需要使用singletons.

在中创建NSObject User.swift

import Foundation
import UIKit

class User: NSObject {
    var name: String = 0

    func getName() -> String{
        name = "Erik Lydecker"
        return name
    }
}
Run Code Online (Sandbox Code Playgroud)

然后初始化您的对象并在那里触发该方法.

ViewController.swift

import UIKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

        let instanceOfUser = User()
        instanceOfUser.getName() // Erik Lydecker
    }
}
Run Code Online (Sandbox Code Playgroud)