2017-03-02 9 views
0

나는 firebase에 저장 한 청구서를 반납하기 위해 sirikit을 사용하려고합니다. 그것은 발견 한 법안을 반환하지 않습니다. 이것은 내 손잡이 함수입니다. 나는 데이터베이스에서 청구서를 얻을 수 getBills에게 기능을 사용하고 있습니다 :SIRIKIT 환불 안 함

func handle(searchForBills intent: INSearchForBillsIntent, completion: @escaping (INSearchForBillsIntentResponse) -> Void) { 
     var arrayOfBills: [INBillDetails] = [] 
     APIManager.getBills { (success, bills) in 
      if(success) { 
      for bill in bills { 
       if (bill.type == intent.billType.rawValue) { 
        var nickname: INSpeakableString = INSpeakableString(identifier: bill.billPayeeNickName, spokenPhrase: bill.billPayeeNickName, pronunciationHint: bill.billPayeeNickName) 
        var organizationalName: INSpeakableString = INSpeakableString(identifier: bill.billPayeeOrganzationalName, spokenPhrase: bill.billPayeeOrganzationalName, pronunciationHint: bill.billPayeeOrganzationalName) 

        var billPayee: INBillPayee = INBillPayee(nickname: nickname, number: bill.billPayeeAccountNumber, organizationName: organizationalName)! 
        var nsDecimalTotal: NSDecimalNumber = NSDecimalNumber(string: bill.total) 
        var amountDueInCurrency: INCurrencyAmount = INCurrencyAmount(amount: nsDecimalTotal, currencyCode: "$") 

        var dateC: DateComponents = DateComponents(calendar: Calendar.current , timeZone: TimeZone.current, era: 1, year: 2017, month: 5, day: 23, hour: 2, minute: 2, second: 2, nanosecond: 2, weekday: 3, weekdayOrdinal: 3, quarter: 3, weekOfMonth: 23, weekOfYear: 33, yearForWeekOfYear: 44) 

        var billToReturn = INBillDetails(billType: INBillType(rawValue: bill.type)!, paymentStatus: INPaymentStatus(rawValue: bill.status)!, billPayee: billPayee, amountDue: amountDueInCurrency, minimumDue: amountDueInCurrency, lateFee: amountDueInCurrency, dueDate: dateC, paymentDate: dateC) 
        arrayOfBills.append(billToReturn!) 
       } 
      } 
       print("success") 
       var response = INSearchForBillsIntentResponse(code: .failure, userActivity: nil) 
       //response.bills = arrayOfBills 
       completion(response) 
      } 
      else { 
       print("failed") 
       completion(INSearchForBillsIntentResponse(code: .failure, userActivity: nil)) 
      } 
    } 

답변

0

귀하의 INSearchForBillsIntentResponse이 두 조건에 "실패"로 시작된다. 당신은 성공 코드가 없습니다 - 이것은 Siri가 청구서를 반환하지 않을 수 있습니다. 응답에 대한 지명 할당의 주석 처리를 제거해야합니다.

처음에는 Bills 기능에 몇 가지 문제가 있었지만 대부분의 버그는 iOS 10.3 베타 4로 수정되었습니다 (SearchForBills UI는별로 좋지 않지만).