[swift-users] Swift 4 "Cannot use mutating member on immutable value: 'self' is immutable"
owenzx at gmail.com
Wed Sep 13 20:11:41 CDT 2017
Change `self` to `ModelFetcher`. You are calling a class static property,
not a class instance property.
On Thu, Sep 14, 2017 at 8:37 AM, Rick Mann via swift-users <
swift-users at swift.org> wrote:
> Moving to Swift 4, I'm running into an issue for which I can't seem to
> find an answer in google:
> "Cannot use mutating member on immutable value: 'self' is immutable"
> The code looks like:
> ModelFetcher : NSObject, URLSessionDelegate
> static let managerDispatchQueue =
> DispatchQueue(label: "Model Download Manager Queue")
> static var pendingFetchers =
> static var currentFetcher: ModelFetcher?
> self.currentFetcher == nil,
> let mf = self.pendingFetchers.popFirst()
> ~~~~ ^ error: cannot
> use mutating member on immutable value: 'self' is immutable
> self.currentFetcher = mf
> This code compiled fine in Xcode 8, or in Xcode 9/Swift 3.2 as a
> monolithic app (the error shows up when this code is factored into a
> framework). Other mutating references to self seem to compile okay (e.g.
> "self.currentFetcher = nil" or "self.pendingFetchers.remove(at: idx)").
> Not sure what's special about this one.
> Rick Mann
> rmann at latencyzero.com
> swift-users mailing list
> swift-users at swift.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the swift-users