I used to do something similar in my Java days - instance members had a single underscore suffix, class members a double underscore, local variables no suffix. I didn't go as far as differentiating method parameters from local variables.
PBK, I myself always use self.weightLabel in Objective-C, and wish that were the required way to do it. It's just a style / preference thing really, but it makes things clearer in my opinion. In Swift the overwhelming consensus on style seems to be to omit the "self." so I grudgingly go along with that. Personally I believe the push to omit anything and everything the compiler doesn't need in an attempt to make the code "simpler" is misguided. If you go too far in that direction you get to perl. For example I prefer having to explicitly declare types rather than have the compiler infer it. With "let foo = bar" you have no clue what the type of "foo" is. Sure if you're in an IDE with tool tips & syntax highlighting & shortcuts to jump to the declaration it helps, but code is often found on web sites, forums and printed out and then you have to go looking somewhere else instead of having the type right there.
We are getting a bit off topic though 🙂