2014-11-07 8 views
1
let winddir = jsonResult["deg"]? as? Double 
var val = ((winddir!/22.5) + 0.5); 
var arr = ["N", "NNE", "NE", "ENE", "E", "ESE", "SE", "SSE", "S", "SSW", "SW", "WSW", "W", "WNW", "NW", "NNW"]; 
return arr[(val % 16)] 
println(arr) 

'String'의 결과는 return arr [(val % 16)]이 (가) '()'로 변환 할 수 없습니다.
나는 하나의 간단한 것을 놓치고있을 것이라고 확신하지만 나는 혼란 스럽다.Swift 숫자를 텍스트로 변환

+0

제 문제 중 일부는 주먹 두 줄이 어지럽 혀서 아무 가치도 얻지 못했습니다. – MwcsMac

답변

2

한 특정 문제와 가능성 - 당신이 당신의 배열 인덱스에 대한 Int를 사용할 필요 하나 : 당신이 당신의 함수 반환 유형을 선언하지 않았다처럼

return arr[Int(val % 16)] 

오류 메시지가 나에게 소리 :

func getWindDirection() -> String { 
    // ... 
} 
+0

var deg = 바람 [ "deg"] 이중으로 var val = ((deg/22.5) + 0.5); var arr = [ "N", "NNE", "NE", "ENE", "E", "ESE", "SE", "SSE", "S", "SSW" WSW ","W ","WNW ","NW ","NNW "]; return arr = [Double (val % 16)] 그리고 저는 다시 func로 돌아 가려하지 않습니다. 값이 두 배이므로 반환 값 [Double (val % 16)] 행의 형식에 대한 가장 좋은 추측은 무엇입니까? – MwcsMac

+0

'arr'은'Array '- 내용이 모두'String' 타입 인 배열입니다. subscripting은 하나의'String' 인스턴스를 가져옵니다. 이 코드가 함수의 일부가 아닌 경우에는'return' 키워드가 여기에 적합하지 않습니다 - 다른 변수에 방향 (예 : "NNE")을 넣으려면'var direction = arr [Int (val % 16)]'. –

+0

그렇습니다.'val'은'Double'입니다. 그러나 배열을 첨자 화하기 위해서'Int' 만 사용할 수 있습니다. 이것이 바로 첫 번째 코드 샘플을 제공 한 이유입니다.이 코드는 double을 정수로 변환합니다. –