Swift struct with 'Any' not copied correctly into a function -


here's struct -

struct settingsitem {     var id: string!     var defaultvalue: any!      init() {     } } 

then it's being used -

var item2 = settingsitem() item2.id = "abcd" item2.defaultvaule = "1234" f(item2)             // <-- breakpoint shows item 

when executed, item looks @ breakpoint shown above. inside function f, item messed up.

func f(item: settingsitem) {     println(item)    // <-- bad item! } 

it looks item isn't copied correctly when calling f, when tried on playground didn't reproduce.

any ideas causes this?

update

it seems working when change type of var defaultvalue: any! else, int! or string!.

also tried using default constructor (removed init()), didn't help.

why fail copy when using any?

in xcode 6.4 same behaviour in playground too.

probably best not rely on built-in string-conversion functionality that’s debugging purposes. instead, try giving type explicit printable implementation:

extension settingsitem: printable {     var description: string {         // make string whatever think appropriate         // string representation of value         return "{id: \(id), defaultvalue: \(defaultvalue)}"     } } 

if add this, prints out way inside f.

p.s. i’d suggest thinking ways can remove ! , any struct, lead problems in longer-term.


Comments

Popular posts from this blog

c++ - Difference between pre and post decrement in recursive function argument -

php - Nothing but 'run(); ' when browsing to my local project, how do I fix this? -

php - How can I echo out this array? -