> On Apr 7, 2015, at 7:04 AM, Alex Zavatone <z...@mac.com> wrote:
> 
> The code that I've inherited has an enum (not an NSEnum) that represents the 
> app's connected state, 0, 1 or 2.

There’s no difference. NS_ENUM is just a macro that defines a C enum, but uses 
some newer (C99?) syntax to specify the integer size that the enum should use. 
(Without that, if you just define a plain enum its size will be sizeof(int), 
IIRC.)

> Results in this:
> Thread1: EXC_BAD_ACCESS (code=1,address = 0x003f8f3)

That’s not a useful crash report. All it says is “something accessed an invalid 
memory address." At a bare minimum you should show the top few lines of the 
stack down to your application code.

I wouldn’t expect any sort of problem with a property that’s an enumerated 
type. I’ve done it often, and there are a lot of properties like that in UIKit, 
for example. But without a backtrace there’s no way of knowing why this failed.

> To answer my own question, changing the enum to an NSInteger backed NS_Enum 
> resulted in no more bad access exceptions from other chunks of code 
> attempting to change the APP_State property.

So, all you did was change the integer size of the value and the crash went 
away. This smells rather like there’s a bug lurking elsewhere in the app code 
that just happened to go away because of some slight change in the alignment of 
the value or the code being generated. If I were you I’d back out that change 
and debug what the actual crash is coming from.

—Jens
_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to