Почему элемент экземпляра 'getPerson' нельзя использовать для типа 'GetPerson' - PullRequest
0 голосов
/ 18 марта 2019

Я пишу код в среде Какао и вызываю функцию из него из основного проекта.Но он не всегда возвращает сообщение.Я исправляю это двумя способами.

Во-первых, в основном проекте viewController:

import getPerson

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

Возвращает:

Элемент экземпляра 'getPerson' не может использоваться для типа'GetPerson';Вы имели в виду использовать значение этого типа вместо

Секунда:

import getPerson

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

Возвращает:

Элемент экземпляра 'getPerson' не может быть использованпо типу '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
    }
}

1 Ответ

0 голосов
/ 18 марта 2019

В вашем первом примере говорится, что вы определили 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 в реальной структуре или это просто класс, определенный (как и должно быть) в отдельном файле?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...