>

사전 테이블에 값을 추가하려고 할 때 마지막 줄에 "예상 선언"오류가 표시됩니다.

class BookingSystem {
    var tablesBooked = Dictionary<Int, String>()
    var table = Table(tableID: 1 , tableCapacity: 2, status: "A")
    var bookings = [Booking]()
    tablesBooked.setValue(table.status, forKey: table.tableID)
}

  • 답변 # 1

    setValue메서드 안에 있지 않고 클래스 내부에만 살 수 없기 때문에이 오류가 발생합니다. 물론 여기서는 실제로 무엇을 어떻게 달성하고 싶은지에 달려 있지만 init() 에 넣을 수 있습니다.  당신의 BookingSystem 의 방법  수업, 또는 당신은 당신의 자신의 사용자 정의 init() 를 구축 할 수 있습니다 .

    다음과 같은 모습입니다 :

       import Foundation
        class Booking {
            // Some interesting things here
        }
        class Table : NSObject {
            // MARK: Properties
            var tableID: Int
            var tableCapacity: Int
            var status: String
            // MARK: Initializers
            init(tableID: Int, tableCapacity: Int, status: String) {
                self.tableID = tableID
                self.tableCapacity = tableCapacity
                self.status = status
            }
        }
    
        class BookingSystem {
            // MARK: Properties
            var tablesBooked = [Int: String]()
            var table = Table(tableID: 1 , tableCapacity: 2, status: "A")
            var bookings = [Booking]()
            // MARK: Initializers
            init() {
                // I am not sure what you are trying to do here, but anyway you should add it in a custom method or your init. If I were to use the code in your example, you would add this here:
                tablesBooked[table.tableID] = table.status
            }
            // ...
        }
    
    

    Table 를 추가했습니다  나만의 맞춤 초기화를 만드는 방법에 대한 예를 보여주기 위해 의도적으로 수업을 진행합니다.

    또한여기에 언급 할 가치가있는 또 다른 것은   Swift Dictionaries 가 없다  방법. 대신 setValue:forKey: 에 객체를 추가하려면 다음을 사용해야합니다.

    Dictionary
    
    

    도움이되고, 궁금한 점이 있으시면 언제든지 문의 해주세요 :)

  • 답변 # 2

    init 메소드 사용 :

    yourDictionnary["yourKey"] = yourValue
    
    
    class BookingSystem { var tablesBooked = Dictionary<Int, String>() var table = Table(tableID: 1 , tableCapacity: 2, status: "A") var bookings = [Booking]() init() { tablesBooked.setValue(table.status, forKey: table.tableID) } }

  • 이전 floating point - Python float 연산에서 소수점 이하 자릿수를 2로 제한
  • 다음 사용자 입력에서 tcl에 나열 할 항목을 삽입하는 방법