import Cocoa
struct Foo { var keys = ["z","y","x"] { didSet { keys.sort() } } init(keysAndValues:Dictionary<String, String>) { self.keys.append(contentsOf: keysAndValues.keys) } } let keysAndValues:Dictionary<String,String> = ["c":"c", "b":"b", "a":"a"] var foo = Foo(keysAndValues: keysAndValues) // `let foo` is the same result foo.keys.forEach { print($0) } /* prints z y x b c a */ Above code doesn't call `didSet` in playground. My .swift file is similar and didn't call `didSet` either. However, if without a struct, `didSet` is called. var keys = ["z","y","x"] { didSet { keys.sort() } } let keysAndValues:Dictionary<String,String> = ["c":"c", "b":"b", "a":"a"] keys.append(contentsOf: keysAndValues.keys) keys.forEach { print($0) } /* prints a b c x y z */ *Xcode 9.0 beta 2 (9M137d)* *Apple Swift version 4.0 (swiftlang-900.0.45.6 clang-900.0.26)* *Target: x86_64-apple-macosx10.9* *macOS Sierra 10.12.5 (16F73)* Zhao Xin On Fri, Jul 7, 2017 at 11:52 PM, Jordan Rose <jordan_r...@apple.com> wrote: > It definitely should. Can you show the code where it wasn’t being called? > > Thanks! > Jordan > > > On Jul 7, 2017, at 00:31, Zhao Xin via swift-users <swift-users@swift.org> > wrote: > > Should Array's `append(_)` functions cause the array's `didSet`? > In my own test, it did call `didSet` in Playground. But in .swift files, > it didn't call. > > Is this a known bug or something? Which is correct? > > Xcode Version 9.0 beta 2 (9M137d) > > swift --version > Apple Swift version 4.0 (swiftlang-900.0.45.6 clang-900.0.26) > Target: x86_64-apple-macosx10.9 > > > Zhao Xin > _______________________________________________ > swift-users mailing list > swift-users@swift.org > https://lists.swift.org/mailman/listinfo/swift-users > > >
_______________________________________________ swift-users mailing list swift-users@swift.org https://lists.swift.org/mailman/listinfo/swift-users