从一个 class 访问结构到另一个
accessing struct from one class to another
是否可以从另一个 class 访问结构?
例如:
class A{
struct structOfClassA {
func returnLetterA () -> String{
return "a"
}
}
}
class B{
let classA = A()
init(){
classA.structOfClassA.returnLetterA // this is what I want to achieve
}
}
如何从 Class A() 在 Class B() 中访问结构?
有解决办法吗?
谢谢!
classA
中的结构定义了一个类型(可以在classA
范围内使用), 但你需要它的一个 实例 才能调用结构的成员函数。例如:
class A {
struct StructOfClassA {
func returnLetterA() -> String{
return "a"
}
}
var structOfClassA = StructOfClassA()
/* Instance of 'StructOfClassA' structure type */
}
class B {
let classA = A()
init() {
let myLetter = classA.structOfClassA.returnLetterA()
print(myLetter)
}
}
var myB = B() // prints "a"
或者,您可以让 B
成为 A
的子 class,这样您就可以访问 类型 StructOfClassA
来自 superclass,在这种情况下,您可以创建 StructOfClassA
的 实例 并访问其方法 returnLetterA()
:
class A {
class StructOfClassA {
func returnLetterA() -> String{
return "a"
}
}
}
class B : A {
let classA = A()
override init() {
let myLetter = StructOfClassA().returnLetterA()
print(myLetter)
}
}
var myB = B() // prints "a"
您刚刚在 class A 中声明了结构 A,但您还必须从结构 A 创建一个实例。
class A{
struct SomeStruct {
func returnLetterA () -> String{
return "a"
}
}
let A = SomeStruct()
}
class B{
let classA = A()
init(){
let letter = classA.A.returnLetterA() // this is what I want to achive
}
}
是否可以从另一个 class 访问结构?
例如:
class A{
struct structOfClassA {
func returnLetterA () -> String{
return "a"
}
}
}
class B{
let classA = A()
init(){
classA.structOfClassA.returnLetterA // this is what I want to achieve
}
}
如何从 Class A() 在 Class B() 中访问结构?
有解决办法吗?
谢谢!
classA
中的结构定义了一个类型(可以在classA
范围内使用), 但你需要它的一个 实例 才能调用结构的成员函数。例如:
class A {
struct StructOfClassA {
func returnLetterA() -> String{
return "a"
}
}
var structOfClassA = StructOfClassA()
/* Instance of 'StructOfClassA' structure type */
}
class B {
let classA = A()
init() {
let myLetter = classA.structOfClassA.returnLetterA()
print(myLetter)
}
}
var myB = B() // prints "a"
或者,您可以让 B
成为 A
的子 class,这样您就可以访问 类型 StructOfClassA
来自 superclass,在这种情况下,您可以创建 StructOfClassA
的 实例 并访问其方法 returnLetterA()
:
class A {
class StructOfClassA {
func returnLetterA() -> String{
return "a"
}
}
}
class B : A {
let classA = A()
override init() {
let myLetter = StructOfClassA().returnLetterA()
print(myLetter)
}
}
var myB = B() // prints "a"
您刚刚在 class A 中声明了结构 A,但您还必须从结构 A 创建一个实例。
class A{
struct SomeStruct {
func returnLetterA () -> String{
return "a"
}
}
let A = SomeStruct()
}
class B{
let classA = A()
init(){
let letter = classA.A.returnLetterA() // this is what I want to achive
}
}