Re: Understanding the declaration of instance variables in the interface is deprecated warning.

2015-06-04 Thread Britt Durbrow
On Jun 4, 2015, at 9:16 AM, Uli Kusterer witness.of.teacht...@gmx.net wrote: On 04 Jun 2015, at 02:36, Britt Durbrow bdurb...@rattlesnakehillsoftworks.com wrote: On Jun 3, 2015, at 11:30 AM, Mark Wright blue.bucon...@virgin.net wrote: For what it’s worth, I’ve never had that

Re: Understanding the declaration of instance variables in the interface is deprecated warning.

2015-06-04 Thread Uli Kusterer
On 03 Jun 2015, at 20:30, Mark Wright blue.bucon...@virgin.net wrote: I believe Uli is mistaken on this point, I’m pretty sure Apple actually recommends prefixing your own ivars in this manner (hence the way auto property synthesis works), it’s *methods* that generally shouldn’t be prefixed

Re: Understanding the declaration of instance variables in the interface is deprecated warning.

2015-06-03 Thread Alex Zavatone
On Jun 3, 2015, at 2:30 PM, Mark Wright wrote: The only potential problem is ivars that don’t have the leading underscore. My project has 377 of them. All named the same as the property, if there is a property to begin with. That's why I'm walking down this fun little road.

Re: Understanding the declaration of instance variables in the interface is deprecated warning.

2015-06-03 Thread Mark Wright
On 03 Jun 2015, at 19:54, Alex Zavatone z...@mac.com wrote: On Jun 3, 2015, at 2:30 PM, Mark Wright wrote: The only potential problem is ivars that don’t have the leading underscore. My project has 377 of them. All named the same as the property, if there is a property to begin

Re: Understanding the declaration of instance variables in the interface is deprecated warning.

2015-06-03 Thread Britt Durbrow
On Jun 3, 2015, at 11:30 AM, Mark Wright blue.bucon...@virgin.net wrote: For what it’s worth, I’ve never had that problem either. Most of the time self.whatever is used for property access, _whatever is used for ivar access and that’s about it. Yup. This is what I meant about properties

Re: Understanding the declaration of instance variables in the interface is deprecated warning.

2015-06-03 Thread David Duncan
I’m fairly certain the warning is newer than the documentation. On Jun 3, 2015, at 7:11 AM, Alex Zavatone z...@mac.com wrote: Apple's Programming with Objective-C reference document © 2014

Understanding the declaration of instance variables in the interface is deprecated warning.

2015-06-03 Thread Alex Zavatone
Apple's Programming with Objective-C reference document © 2014 https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/ProgrammingWithObjectiveC/ProgrammingWithObjectiveC.pdf Page 73 @interface XYZPerson () { id _someCustomInstanceVariable; } ... @end Uhh. Doesn't

Re: Understanding the declaration of instance variables in the interface is deprecated warning.

2015-06-03 Thread Alex Zavatone
Maybe I should have included the text above it. It's also possible to use a class extension to add custom instance variables. These are declared inside braces in the class extension interface. So, I don't know how you see that it goes in the @implementation block since the code I pasted and

Re: Understanding the declaration of instance variables in the interface is deprecated warning.

2015-06-03 Thread David Duncan
There are 3 ways to add ivars to a class. The traditional way: @interface Foo { id _bar; } And 2 new ways: @interface Foo() { // Class extension, note the () id _baz; } @implementation Foo { // Implementation block. id _faz; } On Jun 3, 2015, at 7:32 AM, Alex Zavatone

Re: Understanding the declaration of instance variables in the interface is deprecated warning.

2015-06-03 Thread Mark Wright
That’s a ‘Class Extension’. Furthermore, it’s under the title Class Extensions Extend the Internal Implementation”. It also mentions that it goes in the @implementation block… On 03 Jun 2015, at 15:11, Alex Zavatone z...@mac.com wrote: Apple's Programming with Objective-C reference

Re: Understanding the declaration of instance variables in the interface is deprecated warning.

2015-06-03 Thread Alex Zavatone
On Jun 3, 2015, at 10:41 AM, David Duncan wrote: There are 3 ways to add ivars to a class. The traditional way: @interface Foo { id _bar; } And 2 new ways: @interface Foo() { // Class extension, note the () id _baz; } Ahhh. Completely missed that. Haven't seen it

Re: Understanding the declaration of instance variables in the interface is deprecated warning.

2015-06-03 Thread Alex Zavatone
On Jun 3, 2015, at 11:15 AM, Mark Wright wrote: Sorry, yes, I misread the initial paragraph that mentions the @implementation block. I actually meant implementation *file* since that’s typically where the class extension @interface is declared (it extends the class internally). However,

Re: Understanding the declaration of instance variables in the interface is deprecated warning.

2015-06-03 Thread Alex Zavatone
On Jun 3, 2015, at 11:27 AM, Bernard Desgraupes wrote: What about the @property declarations in the new scheme ? Well, from what I've read, Apple wants you to use @properties over declaring ivars. But… I don't know. With auto-synthesis, you get ivars for free. One point I haven't

Re: Understanding the declaration of instance variables in the interface is deprecated warning.

2015-06-03 Thread Mark Wright
On 03 Jun 2015, at 16:27, Bernard Desgraupes bdesgrau...@orange.fr wrote: What about the @property declarations in the new scheme ? I’m not sure what you’re asking, @properties are a big part of the 'new way'… This is not about properties though, just about the notion of moving ivars

Re: Understanding the declaration of instance variables in the interface is deprecated warning.

2015-06-03 Thread Mark Wright
Sorry, yes, I misread the initial paragraph that mentions the @implementation block. I actually meant implementation *file* since that’s typically where the class extension @interface is declared (it extends the class internally). However, as you’ve surmised, all this talk of clang warnings

Re: Understanding the declaration of instance variables in the interface is deprecated warning.

2015-06-03 Thread Bernard Desgraupes
What about the @property declarations in the new scheme ? Le 3 juin 2015 à 17:15, Mark Wright blue.bucon...@virgin.net a écrit : Sorry, yes, I misread the initial paragraph that mentions the @implementation block. I actually meant implementation *file* since that’s typically where the

Re: Understanding the declaration of instance variables in the interface is deprecated warning.

2015-06-03 Thread David Duncan
On Jun 3, 2015, at 8:27 AM, Bernard Desgraupes bdesgrau...@orange.fr wrote: What about the @property declarations in the new scheme ? You can add @property declarations in any @interface block. Properties added in a class extension will be automatically synthesized. Properties added via a

Re: Understanding the declaration of instance variables in the interface is deprecated warning.

2015-06-03 Thread Alex Zavatone
Here's what I found to be great places to start from within one of Apple's docs. https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/ProgrammingWithObjectiveC/ProgrammingWithObjectiveC.pdf Essential reading Page 16: Page 43: Page 73: Use Class Extensions to Hide Private

Re: Understanding the declaration of instance variables in the interface is deprecated warning.

2015-06-03 Thread Mark Wright
On 03 Jun 2015, at 17:08, Alex Zavatone z...@mac.com wrote: One point I haven't looked at is, if @properties are declared within the @implementation or the class extension, are they private? And if so, shouldn't they be preceded with an underscore and in that case, what does that

Re: Understanding the declaration of instance variables in the interface is deprecated warning.

2015-06-03 Thread Uli Kusterer
On 03 Jun 2015, at 18:46, Mark Wright blue.bucon...@virgin.net wrote: On 03 Jun 2015, at 17:08, Alex Zavatone z...@mac.com wrote: One point I haven't looked at is, if @properties are declared within the @implementation or the class extension, are they private? And if so, shouldn't

Re: Understanding the declaration of instance variables in the interface is deprecated warning.

2015-06-03 Thread Alex Zavatone
On Jun 3, 2015, at 12:46 PM, Mark Wright wrote: This is important and is all about *scope*. A class’s properties are only public if they’re in the header. Exactly. With that said, why do we not have a convention with properties declared within the .m file for showing that they are private

Re: Understanding the declaration of instance variables in the interface is deprecated warning.

2015-06-03 Thread Bernard Desgraupes
My question was unclear. I was asking about _where_ they should be declared. I guess they remain in the @interface. Le 3 juin 2015 à 18:11, Mark+Vron mark.v...@virgin.net a écrit : On 03 Jun 2015, at 16:27, Bernard Desgraupes bdesgrau...@orange.fr wrote: What about the @property

Re: Understanding the declaration of instance variables in the interface is deprecated warning.

2015-06-03 Thread Alex Zavatone
On Jun 3, 2015, at 12:59 PM, Uli Kusterer wrote: So you're not supposed to use the underscore convention even for your private ivars, as Apple could add secret stuff to NSObject or any other base class you'd collide with. -- Uli So, how are we expected to tell the

Re: Understanding the declaration of instance variables in the interface is deprecated warning.

2015-06-03 Thread Alex Zavatone
On Jun 3, 2015, at 1:59 PM, Uli Kusterer wrote: On 03 Jun 2015, at 19:09, Alex Zavatone z...@mac.com wrote: On Jun 3, 2015, at 12:59 PM, Uli Kusterer wrote: So you're not supposed to use the underscore convention even for your private ivars, as Apple could add secret stuff to NSObject or

Re: Understanding the declaration of instance variables in the interface is deprecated warning.

2015-06-03 Thread Mark Wright
On 03 Jun 2015, at 18:59, Uli Kusterer witness.of.teacht...@gmx.net wrote: On 03 Jun 2015, at 19:09, Alex Zavatone z...@mac.com wrote: On Jun 3, 2015, at 12:59 PM, Uli Kusterer wrote: So you're not supposed to use the underscore convention even for your private ivars, as Apple could add

Re: Understanding the declaration of instance variables in the interface is deprecated warning.

2015-06-03 Thread Uli Kusterer
On 03 Jun 2015, at 19:06, Alex Zavatone z...@mac.com wrote: On Jun 3, 2015, at 12:46 PM, Mark Wright wrote: This is important and is all about *scope*. A class’s properties are only public if they’re in the header. Exactly. With that said, why do we not have a convention with

Re: Understanding the declaration of instance variables in the interface is deprecated warning.

2015-06-03 Thread Uli Kusterer
On 03 Jun 2015, at 19:09, Alex Zavatone z...@mac.com wrote: On Jun 3, 2015, at 12:59 PM, Uli Kusterer wrote: So you're not supposed to use the underscore convention even for your private ivars, as Apple could add secret stuff to NSObject or any other base class you'd collide with. --