On Apr 7, 2015, at 3:13 PM, Jens Alfke wrote:

> 
>> 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.

Thanks.  I didn't want to flood the list with extra data, but it appears I 
should have in this case.



>> 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.

Thanks.  That's what I was afraid of.  

> If I were you I’d back out that change and debug what the actual crash is 
> coming from.

With over 100 cases of @catch (NSException *exception) in this project, I think 
you're many times more right than you know.

We've got LOADS of cases of using the appDelegate as a hold-all for most 
everything and the appDelegate is referred to many times in many methods in 
many classes.

Lots of 2011 style interface and @property definition as well where the ivar is 
declared in the interface and then the @property is and then @synthesized.  

Basically, with all that's obviously out of the ordinary here, I'm looking for 
a good strategy to find the most salient path to identifying the issue here and 
refactoring/modernizing as I go along.

The first step, I guess, is recreating the exception in a fresh copy of the 
project.



Thanks much to you and Quincey.  I hope to get more on this to indicate an 
appropriate culprit and path.

Alex Zavatone
_______________________________________________

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