내 swift
에서 웹 서비스에서 데이터를 가져옵니다. 데이터는 배열로 제공 :유형이 프로토콜을 준수하지 않습니다. 시퀀스 유형 - 신속한
{"hashtags": ["first", "second"]}
내가 내 UITableView
의 별도의 행에있는 모든 해시 태그를 넣어합니다. 나는 그 일을 할 논리를 가지고 있지만, 먼저 데이터를 파싱하는 동안 오류가 발생합니다.
class SingleHashtag: NSObject {
var hashtagText: [String]
init(hashtagText: [String]) {
self.hashtagText = hashtagText
super.init()
}
class func fromJSON(json: JSON) -> SingleHashtag? {
let hashtagText:[String] = json["hashtags"].arrayValue.map { $0.stringValue}
return SingleHashtag(hashtagText: hashtagText)
}
}
다음 내 주요 클래스에서 내가 가진 :
Alamofire.request(.GET, "\(serverURL)/hashtags"/*, headers: headers*/)
.validate()
.responseJSON { response in
print(response.description)
switch response.result {
case .Success:
dispatch_async(dispatch_get_main_queue(),{
self.items.removeAllObjects()
if let jsonData = response.result.value as? [[String: AnyObject]] {
for hashtag in jsonData {
if let userHashtags = SingleHashtag.fromJSON(JSON(hashtag)){
for hash in userHashtags {
self.items.addObject(hash)
self.hashtagTable.reloadData()
}
}
}
}
self.hashtagTable.reloadData()
})
case .Failure(let error):
print(error)
}
}
하지만,이 라인 :
for hash in userHashtags {
이 컴파일시 에러가 발생합니다
나는 사용자 정의 함수를 썼다 :type SingleHashtag does not conform to protocol 'SequenceType'
as AnyObject
을 추가하려고 시도했지만 도움이되지 않았습니다. 여기에 뭐가 잘못 됐는지 말해 줄 수 있어요?
'userHashtags'는 'SingleHashtag'이며 시퀀스가 아닙니다. 아마도 당신은'for userHashtags.hashtagText {'? –
흠 나는 그것을 시도했지만, 이제는 내 메소드 cellForRowAtIndexPath에'let 해시 : SingleHashtag = self.items [indexPath.row]라는 줄이있다! SingleHashtag' 그리고 그것은 오류를 throw합니다. 'NSTaggedPointerString'(0x1a0c44378)의 값을 'SingleHashtag'로 변환 할 수 없으므로 코드에서 구문 분석이 잘못된 지점이 확실하지 않습니다. - – user3766930
데이터가 있다고합니다 배열로,하지만 사전 ({ "hastags": [ "first", "second", "third"]})을 나열했습니다 - 그 사전의 배열을 되 찾을 수 있습니까? 아니면 해시 태그 사전을 얻으시겠습니까? – BJHStudios