Xcode hatası nasıl çözülür?

ArdaReis00

Decapat
Katılım
18 Ağustos 2023
Mesajlar
712
Çözümler
2
Yer
Mersin
Daha fazla  
Cinsiyet
Erkek
bu hata nasıl çözülür hatalı yerler
let rightNumber = rightNumber


let rightDouble = Double(rightNumber) else {
let answer = leftDouble / rightDouble


display = convertToString(answer)
let answer = leftDouble * rightDouble


display = convertToString(answer)
let answer = leftDouble - rightDouble


display = convertToString(answer)
let answer = leftDouble + rightDouble


display = convertToString(answer)
self.leftNumber = display bunlar hatalı
Swift:
//
//  ContentViewModel.swift
//  Calculator
//
//  Created by Arda Danahaliloglu on 15.09.2023.
//

import Foundation

public class ContentViewModel: ObservableObject {
    @Published var display: String = "0"
    @Published var action: Action?
    @Published var shouldClear: Bool = false
    @Published var newAction: Bool = false
   
    private var leftNumber: String? = nil
    private var rightNumber: String? = nil
   
    public func buttonPressed(_ button: CalcButton) {
        if button.buttonText == "AC" {
            clearAll()
        }else if let text = button.buttonText {
            guard display.count < 9 &&  (text == "." && display.contains(".")) else {
                return
            }
           
            if text == "%",
               let displayNum = Double(display) {
                let answer = displayNum / 100.0
                display = convertToString(answer)
            }else if shouldClear || (display == "0" && text != ".") {
                display = text
                shouldClear = false
            }else{
                display.append(text)
            }
           
        }else if let action = button.action {
            if leftNumber == nil {
                leftNumber = display
            }else if rightNumber == nil || newAction {
                rightNumber = display
                newAction = false
            }
           
            switch action {
            case .plusMinus:
                if display.contains("-") {
                    display.removeFirst()
                }else{
                    display.insert("-", at: display.startIndex)
                }
            case .divide:
                self.action = .divide
                newAction = true
            case .multiply:
                self.action = .multiply
                newAction = true
            case .subtract:
                self.action = .subtract
                newAction = true
            case .add:
                self.action = .add
                newAction = true
            case .equals:
                solve()
            }
           
            shouldClear = true
        }
    }
   
    private func clearAll() {
        display = "0"
        action = nil
        shouldClear = false
        newAction = false
        leftNumber = nil
        rightNumber = nil
    }
   
    private func convertToString(_ number: Double) -> String {
        return String(format: "%g", number)
    }
   
    private func solve() {
        guard let action = action,
              let leftNumber = leftNumber,
              let leftDouble = Double(leftNumber),
              let rightNumber = rightNumber
                let rightDouble = Double(rightNumber) else {
            return
        }
       
        switch action {
        case .divide:
            let answer = leftDouble / rightDouble
            display = convertToString(answer)
        case .multiply:
            let answer = leftDouble * rightDouble
            display = convertToString(answer)
        case .subtract:
            let answer = leftDouble - rightDouble
            display = convertToString(answer)
        case .add:
            let answer = leftDouble + rightDouble
            display = convertToString(answer)
        default:
            return
        }
       
    }
     self.leftNumber = display
   
   
   
}
 
Hocam bu konuda hiçbir fikrim yok ama GPT-4 destekli yapay zeka şu sorunlar var diyor:

Kod:
Satır 36: rightNumber’dan sonra bir virgül eksik. let rightNumber = rightNumber, olmalı.
Satır 67: rightNumber’dan sonra kapanış parantezi eksik. let rightDouble = Double(rightNumber)) olmalı.
Satır 92: self.leftNumber’ı display’e atıyorsunuz, ama bunun tersini yapmanız gerekiyor. display = self.leftNumber olmalı.
 
teşekkürler hocam ben deniyim bi yazdığınızı.

Swift:
Cannot find 'self' in scope; did you mean to use it in a type or extension context? Hatası oldu hocam yazdığım kod: var display = self.leftNumber
bu.
 
Son düzenleme:
Hocam kod okumasını biliyorsanız size yapay zekanın yazdığı "self" kullanımı ile ilgili örneği atabilirim.
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…