Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/118.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Swift在另一个文件中调用公共类_Ios_Class_Swift_Public - Fatal编程技术网

Ios Swift在另一个文件中调用公共类

Ios Swift在另一个文件中调用公共类,ios,class,swift,public,Ios,Class,Swift,Public,在快速编程中。我创建了一个名为Array3d的公共类,它位于Array3d.swift文件中。My ViewController2.swift使用Array3d类和i println(dog)创建一个名为dog的变量。但是,我的控制台不显示dog数组的值,而是显示FYP_Table.Array3D 我已经创建了一个名为dog的3D数组,并在其中插入了一些值。现在我想把它打印到我的调试器输出中。但是不起作用 // Array3d.swift public class Array3D {

在快速编程中。我创建了一个名为Array3d的公共类,它位于Array3d.swift文件中。My ViewController2.swift使用Array3d类和i println(dog)创建一个名为dog的变量。但是,我的控制台不显示dog数组的值,而是显示FYP_Table.Array3D

我已经创建了一个名为dog的3D数组,并在其中插入了一些值。现在我想把它打印到我的调试器输出中。但是不起作用

// Array3d.swift 
    public class Array3D {
        var zs:Int, ys:Int, xs:Int
        var matrix: [Float]

        init(zs: Int, ys:Int, xs:Int) {
            self.zs = zs
            self.ys = ys
            self.xs = xs
            matrix = Array(count:zs*ys*xs, repeatedValue:0)
        }

        subscript(z:Int, y:Int, x:Int) -> Float {
            get {
                return matrix[ z * ys * xs + y * xs + x ]
            }
            set {
                matrix[ z * ys * xs + y * xs + x ] = newValue
            }
        }

//ViewController2.swift

    class ViewController2: UITableViewController {

    var dog = Array3D(zs: 3, ys: 3, xs: 3)


    override func viewDidLoad() {

    dog[1,0,0] = 1
    dog[0,4,0] = 2
    dog[0,0,4] = 3
    dog[0,4,4] = 4

      for z in 0..<3 {
       for y in 0..<3 {
        for x in 0..<3 {
         println(self.dog)
               }
             }
           }

        override func didReceiveMemoryWarning() {
            super.didReceiveMemoryWarning()
            // Dispose of any resources that can be recreated.
        }

    }
//Array3d.swift
公共类Array3D{
变量zs:Int,ys:Int,xs:Int
var矩阵:[浮动]
init(zs:Int,ys:Int,xs:Int){
self.zs=zs
self.ys=ys
self.xs=xs
矩阵=数组(计数:zs*ys*xs,重复值:0)
}
下标(z:Int,y:Int,x:Int)->Float{
得到{
返回矩阵[z*ys*xs+y*xs+x]
}
设置{
矩阵[z*ys*xs+y*xs+x]=新值
}
}
//ViewController2.swift
类ViewController2:UITableViewController{
var dog=Array3D(zs:3,ys:3,xs:3)
重写func viewDidLoad(){
狗[1,0,0]=1
狗[0,4,0]=2
狗[0,0,4]=3
狗[0,4,4]=4

对于0..中的z,您的类没有
说明
,因此它只是打印出默认表示形式

func description() -> String {
  return String(format: "Array3D zs:%d ys:%d xs:%d", self.zs, self.ys, self.zs)
}

正确的方法是实现
Printable
协议(请参阅),它只是一个名为
description
的只读属性

var description : String {
    return String(format: "Array3D zs:%d ys:%d xs:%d", zs, ys, zs)
}

只是一个补充:如果您使用:return“Array3D zs:\(zs)ys:\(ys)xs:\(xs)”可能会更“快速”;我从来没有用swift编程过任何东西。;)从技术上讲,您必须让类实现
可打印的
类别,这意味着实现描述(作为属性)以及添加@fred's link.Hi.中所示的类声明,但我希望返回数组中的值,例如dog[z,y,x]。然后在ViewController2中,我将要打印我的3D数组,并使用for循环。如何返回数组中的值?如果我问一个简单的问题,很抱歉,这是一个编程初学者。上面提供的代码是否提供了一个您可以描述的特定问题?我不确定您在这里问什么。