2016-10-05 2 views
0

나는 스위프트 2.2와 아래의 코드를 수행했지만 Swift 3.0으로 전환 할 때 조건이 "이진 연산자 '인 경우 오류가 발생합니까?' 'AnyObject'유형의 피연산자에는 적용 할 수 없습니다. 와 '문자열' "이항 연산자 '??' 'AnyObject'유형의 피연산자에는 적용 할 수 없습니다. 와 '문자열'

if let custID = dataDict["cust_id"] ?? "", 
let custName = dataDict["cust_name"] ?? "", 
let fileName = dataDict["filename"] ?? "", 
let transNumber = dataDict["trans_no"] ?? "" { 

linesheet_custID = (custID["text"] ?? "") as! String 
linesheet_custName = (custName["text"] ?? "") as! String 
linesheet_filename = (fileName["text"] ?? "") as! String 
linesheet_TransNumber = (transNumber["text"] ?? "") as! String 
} 

는 위의 코드에서와 같이 솔루션을 제안하십시오 경우에 사전 값을 반환 내가 같이 빈 문자열을 할당 한 후 nil을 경우하자 문 특정 키

답변

1

에 대한 (" ") 당신은 주조한다 사전에서 선택 문자열로 가져온 값. 예를 들어

:

let custID = (dataDict["cust_id"] as String?) ?? "" 
+0

@overactor, 스위프트 3에서는 작동하지 않습니다. –

0

는이 작업을 수행 :

let custID = dataDict["cust_id"] as? String ?? "" 
0
내가 컴파일러는 이것으로 OK 것 같다 스위프트 3 에 Date 객체와 같은 오류로 실행

:

let noStartDate = "No start date" let description = "(\(self.startDate?.toString() ?? noStartDate)) - \(campaignNotes)"

관련 문제