ios - Could not cast value of type 'SwiftyJSON.JSON' to 'Swift.String' -


i have been trying display data parsed json uitableview. used swiftyjson parse data , pass array controller.

i used nsarray force json array. when print passed data, shows following:

(     "string one",     "string two" ) 

then inside the

func collectionview(_ collectionview: uicollectionview, cellforitemat indexpath: indexpath) -> uicollectionviewcell

function, used

let urls: string = sshostring[indexpath.item] as! string 

when print array inside function cellforitemat without forcing type string, prints following:

string 1 string 2 

but when force type string crashes , shows following:

could not cast value of type 'swiftyjson.json'  'swift.string'. 

how make work? how force string?

as requested:

var featuredscreenshots:nsarray = nsarray() var featuredssho = nsmutablearray()  items in json["featured"].arrayvalue {     featuredssho.add(items["screenshots"].arrayvalue) }  self.featuredscreenshots = featuredssho nsarray 

then passed other controller:

let vc = self.storyboard?.instantiateviewcontroller(withidentifier: "detailsview") as! detailsview  vc.sshostring = featuredscreenshots[indexpath.row] as! nsarray 

accessing element of json in swiftyjson returns type json.

in order type looking for, need use included properties of json type so:

let urls: string = sshostring[indexpath.item].string! 

with swiftyjson .string of optional type string?, why left force unwrap there. in general, force unwraps should avoided, recommend doing along these lines:

if let urls = sshostring[indexpath.item].string {     //urls type string, , can use needed } 

i recommend reviewing documentation swiftyjson, goes more detail , shows other examples using .int, .bool, .url, etc values looking for.


Comments

Popular posts from this blog

php - Vagrant up error - Uncaught Reflection Exception: Class DOMDocument does not exist -

vue.js - Create hooks for automated testing -

Add new key value to json node in java -