无法在swift中使用类

时间:2017-07-30 12:56:00

标签: ios swift xcode cocoa-touch uikit

我有2个文件init_env_heap + NUM_ELEMProductTableViewCotrollers.swift

我在名为Product.swift的{​​{1}}中声明了一个类,我正在尝试初始化并在Product.swift中使用它但没有成功。

这是我的Product

ProductTableViewCotrollers.swift

ProductTableViewCotrollers.swift

class ProductsTableViewController: UITableViewController {
    let p1 = Product()
    let p2 = Product()
    let p3 = Product()
    let p4 = Product()
    p1.name = "" 
    //////......

Bot文件具有相同的目标Product.swift

这是错误,说没有定义

我正在使用Xcode import Foundation import UIKit class Product { var name: String? var image: UIImage? var cellImage: UIImage? } 和osx Phones

4 个答案:

答案 0 :(得分:1)

在其中一个ViewController生命周期方法中设置属性

class TableViewController: UITableViewController {

let p1 = Product()
let p2 = Product()
let p3 = Product()
let p4 = Product()


override func viewDidLoad() {
    super.viewDidLoad()

p1.name = ""



}

答案 1 :(得分:1)

您只能在类中的方法外声明变量或创建对象。所以let p1 = Product()是方法之外的有效语句。这是具有初始化的类的全局变量声明。要访问此类的任何对象,您需要访问方法内部。请在viewDidLoad -

中尝试以下内容
override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.
    p1.name = ""
    p2.name = ""


}

答案 2 :(得分:1)

您可以使用闭包初始化属性:

let p1 = { let p = Product()
    p.name = ""
    return p
}()

答案 3 :(得分:0)

在像

这样的函数中尝试这个语句
func printName() {

   print(p1.name)

}