gpt4 book ai didi

swift - 为什么实例成员 'getPerson' 不能用于类型 'GetPerson'

转载 作者:行者123 更新时间:2023-11-30 10:48:30 25 4
gpt4 key购买 nike

我在 Cocoa 框架中编写代码并从主项目调用其中的函数。但它总是无法返回消息。我用两种方法解决这个问题。

首先,在主项目viewController中:

import getPerson

override func viewDidLoad() {
super.viewDidLoad()
var person = GetPersons.getPerson(name: "Jack")
}

返回:

Instance member 'getPerson' cannot be used on type 'GetPerson'; did you mean to use a value of this type instead

第二:

import getPerson

override func viewDidLoad() {
super.viewDidLoad()
let vc = GetPersons.self
var person = vc.getPerson(name: "Jack")
}

返回:

Instance member 'getPerson' cannot be used on type 'GetPersons'

这是怎么回事?我该如何修复它?

在测试框架中:

import Fundation 

public class GetPersons {

public struct Person {

public var name : String = ""
public var age : Int = 0

}

public func getPerson(name : String) -> Person {
var person = Person()
return person
}
}

最佳答案

在第一个示例中,它告诉您将 getPerson(name: String) 定义为实例方法。 (大概是因为它对实例属性进行操作。)

您在这里调用它就好像它被定义为:

static func getPerson(name: String) { ...

第二个是说同样的事情,而不猜测你想做什么。

如果我明白你想做什么,我认为它是这样的:

class GetPersons {

struct Person {

public var name : String = ""
public var age : Int = 0

}

func getPerson(name : String) -> Person {
var person = Person()
return person
}
}

然后,在 View Controller 中为 GetPersons 实例定义一个属性:

let gp = GetPersons()

然后在viewDidLoad中:

let person = gp.getPerson(name: "Jack")

此外,GetPersons 是在一个实际的框架中,还是只是一个在单独的文件中定义(应该如此)的类?

关于swift - 为什么实例成员 'getPerson' 不能用于类型 'GetPerson',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55213199/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com