4 ms·
So, what is self inside a class method? I was under the impression it was the Class?
by stickydink 13y ago
So, what is self inside a class method? I was under the impression it was the Class?
- wattson12 13y agoYes in class methods self is the Class object, so the Class is used as the locking token: > The object passed to the @synchronized directive is a unique identifier used to distinguish the protected block
- marcomonteiro 13y agoself in that context would be the class. The issue he was facing is that in subclasses, "self", would refer to a different class and therefore the lock wouldn't apply. What he's pointing out is that he resolved that issue by specifying the superclass explicitly. Personally, if I had to ensure synchronous calls to a class variable, I'd prefer to just restrict calls like this to a specific queue using dispatch_sync().
- masklinn 13y ago> I was under the impression it was the Class? It is the class. But it's not the class in which the method is defined it's the class from which it is called. So in one case it's the superclass and in the other case it's the subclass.