第一次製作framework封裝項目裏的業務庫,然後就遇到了一個容易被自己忽視的坑
比如我的framework裏面有這樣一個類供外部調用:
public class Hello {
public var message = ""
}
我將framework打包,然後新建一個Test Tartget。在Target裏去import這個framework並想要創建這個類,發現編譯器報錯:
訪問了一個internal的變量,這是不被允許的
然後我就百思不得其解,爲什麼可以直接訪問這個對象的message字段,並且我的framework也是設置的public,怎麼就internal了。最後,我發現了一個被自己忽視的地方,class的構造方法是默認的。而且通常開發中都被我忽視了,所以就發生了這種問題。附上正確的代碼:
public class Hello {
public var message = ""
public init() {}
}