firebase에 추가 된 호텔 수를 추적하기 위해 정적 변수를 사용하고 있습니다. 예를 들어 처음에는 정적 변수의 값이 1이고 firebase에 데이터가 추가되면 숫자가 2로 증가합니다.하지만 다시 데이터가 추가되고이 뷰 컨트롤러가 다시로드되면 정적 변수의 값이 1로 돌아가고 게시 된 새 데이터가 이전 데이터를 대체합니다. 어떻게 관리 할 수 있습니까? 나는 꽤 기본적이고 어리석은 질문을 알고 있지만 때로는 뇌가 작동하지 않습니다. 아래는 코드입니다.
class OwnerAddListing2ViewController: UIViewController {
static var numberOfHotels:Int = 1
let DataForCurrency : [String] = ["USD", "Rs"]
let DataForDays : [String] = ["PerNight", "PerWeek", "PerMonth"]
override func viewDidLoad() {
super.viewDidLoad()
currencyField.inputView = currencyPicker
daysField.inputView = daysPicker
}
@IBAction func nextButtonTapped(_ sender: UIButton) {
let currency = currencyField.text
let charges = chargesField.text
let days = daysField.text
let phone = phoneField.text
let email = emailField.text
//Get reference to firebase Database
let db = Firestore.firestore()
//Post data tw database
db.collection("Property").document("\(Auth.auth().currentUser!.uid)").collection("Hotel").document("\(OwnerAddListing2ViewController.numberOfHotels)").setData(["Currency": currency!, "Charges" : charges!, "Days" : days!, "Phone" : phone!, "EmailAddress" : email!], merge: true) {(error) in
if error != nil {
}
else {
print("Data Posted Succesfully")
OwnerAddListing2ViewController.numberOfHotels = OwnerAddListing2ViewController.numberOfHotels + 1
}
}
}
정적 변수는 하나의 애플리케이션 라이프 사이클에 저장된 데이터 만 유지합니다. 응용 프로그램을 다시 시작하면 정적 변수가 기본값에서 초기화됩니다. 전체에 걸쳐 변수의 값을 유지하려면 UserDefaults
소량의 정보를 저장할 수있는 사용 을 고려해야 합니다. 그러나 암호와 같은 민감한 데이터를 저장하지 않도록주의하십시오.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다