Ok time for me to establish base test cases in very simple cases first.

Sent from my iPhone

> On Feb 23, 2016, at 6:47 PM, Quincey Morris 
> <quinceymor...@rivergatesoftware.com> wrote:
> 
>> On Feb 23, 2016, at 15:25 , Alex Zavatone <z...@mac.com> wrote:
>> 
>> Would it be recommended to package my ARC code with ARC turned off and 
>> package that in a framework and then link to that from the non ARC app that 
>> will need to load it?
> 
> This would be a really bad idea. :) Your code has no retains and releases, so 
> it will cause crashes unless it is compiled with ARC turned on.
> 
> Think of it this way: ARC does the retains and releases for you. Either you 
> *compile* with ARC, or you *compile* with explicit retains and release. 
> Anything else will crash. Packaging the compiled code doesn’t affect this.
> 
>> On Feb 23, 2016, at 15:29 , Alex Zavatone <z...@mac.com> wrote:
>> 
>> Are there any tools in Instruments or approaches to make sure I'm not going 
>> to destroy the universe when calling my stuff?
> 
> I don’t think you’re in danger of destroying any universes, but I don’t know 
> that there’s anything automatic to help you.
> 
> The main problem is that your (ARC) code needs to know the memory management 
> of the other (MRR) code. That means that any headers it imports from the 
> other code must not promise things that aren’t true. That includes property 
> attributes such as ‘strong’, ‘unowned’, and assumptions that ARC makes about 
> memory management based on naming. (For example, an object obtained via 
> [[…alloc]init…] is generally assumed to be returned with a +1 ownership, but 
> an object obtained via a class method named ‘newXXX…’ is generally assumed to 
> be returned with +0 ownership.)
> 
> So it’s certainly possible that the other code’s header files may be 
> non-specific enough to cause headaches in your ARC code. You’re probably 
> pretty safe in the other direction, since ARC follows the memory management 
> conventions that well-written MRR code used to use.
> 
> Perhaps your other choice is to use copies of your code, and add the MRR 
> retains and releases back in.
>  
_______________________________________________

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