Swift에서 NSNumbers는 스칼라 숫자가 포함 된 컨테이너라는 것을 알고 있습니다.Swift 3.2 iOS - Firebase MutableData 객체의 NSNumber를 증가시키는 방법?
InFirebase NSNumbers를 데이터베이스에 보낼 수 있지만 Ints는 보낼 수 없습니다.
많은 수의 좋아하는/upvotes에 대해 Firebase Transactions를 사용하고 있으며 사용자가 upvote 버튼을 누른 횟수를 늘려야합니다.
여기 중포 기지로 데이터를 전송하는 내 코드입니다 :
likesRef?.runTransactionBlock({
(currentData: MutableData) -> TransactionResult in
var value = currentData.value as? NSNumber
if value == nil{
value = 0
}
let one: NSNumber = 1
currentData.value = value! += one //error is here
return TransactionResult.success(withValue: currentData)
내가 점점 계속 오류 :
Binary operator '+=' cannot be applied to two 'NSNumber' operands
문제는 난에 Firebase MutableData
유형을 통과하고있어한다 success(withValue:)
메서드가 아니라 NSNumber 값 자체. Firebase가 Ints를 허용하지 않기 때문에 NSNumber.intValue
을 사용할 수 없습니다.
어떻게 MutableData 객체의 일부로 Firebase에 보낼 NSNumbers 두 개를 증가시킬 수 있습니까?
덕분에, 나는 (currentData를 시간 정도의 몇을 시도하고 다시 내가 여는 중괄호 ** 전에 두 번째 줄에 오류가 계속 당신 –
을 얻을 수 있습니다. 값? NSNumber) ?. 값 **. 오류는 ** ""가치 "의 모호한 사용 **입니다. ** (currentData.value as NSNumber)? intValue **를 대신 사용했고 효과가있었습니다. 스위프트 3.2를 사용하고 있습니다 ** ** intValue ** ** value **를 전환하여 업데이트해야 할 수도 있습니다. 그 외의 답변은 훌륭합니다! 감사 :) –