2017-07-17 103 views
0

class我创建我有一个struct称为Image访问结构

public struct Image { 


private(set) var url: String 
private(set) var crop: CGRect 

    init(url: String, crop: CGRect) { 
     self.url = url 
     self.crop = crop 
    } 
} 

我也有一个使用Image作为参数的函数。

public func detectBoxes(image: Image) { 
    //some code 
} 

我想要做的是在另一个文件中访问Image以在函数中使用它。所以,我创建了class的实例,并尝试输入

instance.detectBoxes(image: ...) 

,但它不会让我创建的Image这样我就可以使用它的一个实例,它只是要我输入Class.Image这没有意义。

有谁知道如何解决我的问题?任何帮助将非常感激。欢呼声中, 西奥

+0

声明你的结构_inside_类的声明(即嵌套声明)?或者他们只是在同一个文件中定义? – paulvs

+0

@paulvs类内 –

回答

1

您一类的内部定义一个嵌套的结构,这意味着它可以从类范围内。

如果您希望仅使用Image类型的实例而不是<ClassName>.Image,则必须将该结构的声明移出该类的范围。

+0

非常感谢!我做了你的建议,但当我尝试通过执行'var imageInstance = Image('它不会自动完成'Image(url:String,crop:CGRect)''在我的其他文件中创建一个实例'知道这是怎么回事这一点。一旦我得到那个工作我金色的。我肯定给你的对勾,如果你能解决这个问题 –

+0

我意识到我的'的init()'函数是不公开的,所以我做到了。所以,但它仍然无法正常工作,我发现了错误,当我输入'VAR imageInstace =图像(URL:“嗒嗒”,作物:“嗒嗒”)'*“形象”初始化不可访问,由于“内部“保护等级* –

+0

固定它自己!再次感谢 –