2017-07-17 101 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

固定它自己!再次感謝 –