SwiftUI Как использовать класс с функцией в представлении - PullRequest
0 голосов
/ 31 октября 2019

У меня есть этот простой класс:

import Foundation

class Utility {
    func somma(int1:String, int2:String) -> String {
        let totale = (Int(int1) ?? 0) + (Int(int2) ?? 0)
        let totale_Str = String(totale)
        return totale_Str
    }
}

и это простое представление:

import SwiftUI

struct ContentView: View {
    @State private var int1:String = "0"
    @State private var int2:String = "0"

    @State private var somma:String = ""

    var body: some View {
        VStack {
            TextField("Intero 1", text: $int1)
            TextField("Intero 2", text: $int2)
            Text("\(somma)")
            Button(action: {
                self.somma = Utility.somma(self.int1, self.int2)
            }) {
                Text("Somma")
            }
        }
    }
}

, но в строке self.somma = Utility.somma(self.int1, self.int2) У меня есть эта ошибка Instance member 'somma' cannot be used on type 'Utility'; did you mean to use a value of this type instead? Я пытался вразличные способы устранения ошибки без поиска решения. Как я могу устранить эту ошибку?

Ответы [ 2 ]

1 голос
/ 31 октября 2019

Классовой функции в Swift предшествует ключевое слово static, поэтому, если вы хотите использовать somma как классовую (т.е. статическую) функцию, вы должны объявить ее следующим образом:

static func somma(int1:String, int2:String) -> String { //etc.

0 голосов
/ 31 октября 2019

Я нашел решение. Просто измените:

self.somma = Utility.somma(self.int1, self.int2)

с:

self.somma = Utility().somma(int1: self.int1, int2: self.int2)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...