Le 27 mai 2010 à 13:53, [email protected] a écrit :

> 
> 
> On 26 May 2010, at 20:00, Greg Parker wrote:
>>> 
>> 
>> Mac or iPhone?
>> iPhone device or iPhone simulator?
>> 32-bit Mac or 64-bit Mac?
>> 
> Sorry for the vagueness. 32 bit mac.
> 
>> My guess is that (1) you're running on iPhone Simulator or 32-bit Mac, and 
>> (2) you recently added an ivar to MGS_A but did not recompile all code that 
>> uses MGS_B. In that case, any MGS_B code that was compiled with the old 
>> declaration of MGS_A will think MGS_A is smaller than it actually is, and 
>> write its ivar values to the wrong place.
>> 
>> Try a clean rebuild of everything. If the above is the problem, a clean 
>> build should fix it.
> A clean build does sort it out.
> 
> I am astonished that I don't fall over this simple issue every day.
> 
> MGS_A and MGS_B exist in the same module (a private framework).
> If I add an ivar to MGS_A and build my app then MGS_B succumbs to the fragile 
> ivar syndrome.
> I have to touch MGS_B and rebuild in order to update its ivar offsets.
> I always presumed that as MGS_B is a subclass of MGS_A it would get built too.
> 
> Is there no build support to help with these sorts of class dependencies?
> Or have I borked my build settings somewhere?


If MGS_B is a subclass of MGS_A , it must import the MGS_A header file (else 
the compiler will complain).
If you touch a header file, all files that include it should be automatically 
rebuild on the next build, else this is a bug in Xcode that failed to properly 
resolve file dependencies.

If you manage to reproduce the issue, fill a radar.

WFIW, a known case where Xcode failed to properly compute dependencies is when 
you import your header using a macro

#define MYHEADER(header) <Framework/header.h>

#include MYHEADER(MGS_A.h)


-- Jean-Daniel




_______________________________________________

Cocoa-dev mailing list ([email protected])

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:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to [email protected]

Reply via email to