Did this change in Swift 4?

I like being able to refer to the class in a class func as "self". If I ever 
change the name of the class, or refactor the code, or something, I don't have 
to change it in a bunch of places.

> On Sep 13, 2017, at 18:11 , Zhao Xin <owe...@gmail.com> wrote:
> 
> Change `self` to `ModelFetcher`. You are calling a class static property, not 
> a class instance property.
> 
> Zhao Xin
> 
> On Thu, Sep 14, 2017 at 8:37 AM, Rick Mann via swift-users 
> <swift-users@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:
> 
> class
> ModelFetcher : NSObject, URLSessionDelegate
> {
>     ...
>     static  let     managerDispatchQueue                    =   
> DispatchQueue(label: "Model Download Manager Queue")
>     static  var     pendingFetchers                         =   
> [ModelFetcher]()
>     static  var     currentFetcher:         ModelFetcher?
> 
>     class
>     func
>     startNextFetcher()
>     {
>         self.managerDispatchQueue.async
>         {
>             guard
>                 self.currentFetcher == nil,
>                 let mf = self.pendingFetchers.popFirst()
>                          ~~~~ ^                             error: cannot use 
> mutating member on immutable value: 'self' is immutable
>             else
>             {
>                 return
>             }
> 
>             self.currentFetcher = mf
>             mf.start()
>         }
>     }
>     ...
> }
> 
> 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
> rm...@latencyzero.com
> 
> 
> _______________________________________________
> swift-users mailing list
> swift-users@swift.org
> https://lists.swift.org/mailman/listinfo/swift-users
> 


-- 
Rick Mann
rm...@latencyzero.com


_______________________________________________
swift-users mailing list
swift-users@swift.org
https://lists.swift.org/mailman/listinfo/swift-users

Reply via email to