В вашем первом примере говорится, что вы определили 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
}
}
Затем в вашем контроллере представления определите свойство для экземпляра GetPersons:
let gp = GetPersons()
затем в viewDidLoad:
let person = gp.getPerson(name: "Jack")
Кроме того, находится ли GetPersons в реальной структуре или это просто класс, определенный (как и должно быть) в отдельном файле?