• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
ARC vs Manual Reference Counting
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

ARC vs Manual Reference Counting


  • Subject: ARC vs Manual Reference Counting
  • From: email@hidden
  • Date: Sun, 08 Sep 2013 21:41:19 -0700

Would anyone agree me that ARC introduces more rules and considerations than previously existed with manual reference counting?


On Sep 8, 2013, at 12:00 PM, email@hidden wrote:

> Send Cocoa-dev mailing list submissions to
> 	email@hidden
>
> To subscribe or unsubscribe via the World Wide Web, visit
> 	https://lists.apple.com/mailman/listinfo/cocoa-dev
> or, via email, send a message with subject or body 'help' to
> 	email@hidden
>
> You can reach the person managing the list at
> 	email@hidden
>
> When replying, please edit your Subject line so it is more specific
> than "Re: Contents of Cocoa-dev digest..."
>
>
> Today's Topics:
>
>   1. Evil setFrame: (Gerriet M. Denkmann)
>   2. Re: Evil setFrame: (Kyle Sluder)
>
>
> ----------------------------------------------------------------------
>
> Message: 1
> Date: Sun, 08 Sep 2013 11:36:08 +0700
> From: "Gerriet M. Denkmann" <email@hidden>
> To: email@hidden
> Subject: Evil setFrame:
> Message-ID: <email@hidden>
> Content-Type: text/plain; charset=utf-8
>
> I try to show a nib (which uses autolayout and which contains among other things a NewView inside an NSClipView inside an NSScrollView ) like this:
>
> if ( self.neuWindowController == nil )
> {
> 	//	NewWindowController is subclass of NSWindowController
> 	self.neuWindowController  =	[ [NewWindowController alloc]	initWithWindowNibName: 	@"SomeNib"
> 																eventsList: 			someArray
> 								];
> };
>
> [ self.neuWindowController showWindow: nil ];
>
> The last line triggers in my NewView:
>
> -[NewView resizeWithOldSuperviewSize:] NewView 0x101982430 bounds {{0, 0}, {437, 252}}
> -[NewView resizeWithOldSuperviewSize:] NewView 0x101982430 frame  {{0, 0}, {437, 252}}
> -[NewView resizeWithOldSuperviewSize:] NSClipView 0x10197b8e0 bounds {{0, 0}, {398, 94}}
> -[NewView resizeWithOldSuperviewSize:] will call super with oldBoundsSize {437, 254}
> 	-[NewView setFrame:] will {{0, 0}, {0, 0}}	← why is super doing this to me ??
> -[NewView resizeWithOldSuperviewSize:] got frame {{0, 0}, {0, 0}}
>
> and from here on nothing works (not too surprising with such a small frame).
>
> Something must be terrible wrong in my setup of NewView, but what?
>
> Gerriet.
>
>
>
>
> ------------------------------
>
> Message: 2
> Date: Sat, 07 Sep 2013 22:04:31 -0700
> From: Kyle Sluder <email@hidden>
> To: "Gerriet M. Denkmann" <email@hidden>,
> 	email@hidden
> Subject: Re: Evil setFrame:
> Message-ID:
> 	<email@hidden>
> Content-Type: text/plain; charset=utf-8
>
> On Sat, Sep 7, 2013, at 09:36 PM, Gerriet M. Denkmann wrote:
>> I try to show a nib (which uses autolayout and which contains among other
>> things a NewView inside an NSClipView inside an NSScrollView ) like this:
>>
>> if ( self.neuWindowController == nil )
>> {
>> 	//	NewWindowController is subclass of NSWindowController
>> 	self.neuWindowController  =	[ [NewWindowController alloc]	initWithWindowNibName: 	@"SomeNib"
>> 																eventsList: 			someArray
>> 								];
>> };
>>
>> [ self.neuWindowController showWindow: nil ];
>>
>> The last line triggers in my NewView:
>>
>> -[NewView resizeWithOldSuperviewSize:] NewView 0x101982430 bounds {{0,
>> 0}, {437, 252}}
>> -[NewView resizeWithOldSuperviewSize:] NewView 0x101982430 frame  {{0,
>> 0}, {437, 252}}
>> -[NewView resizeWithOldSuperviewSize:] NSClipView 0x10197b8e0 bounds {{0,
>> 0}, {398, 94}}
>> -[NewView resizeWithOldSuperviewSize:] will call super with oldBoundsSize
>> {437, 254}
>> 	-[NewView setFrame:] will {{0, 0}, {0, 0}}	← why is super doing this to me ??
>> -[NewView resizeWithOldSuperviewSize:] got frame {{0, 0}, {0, 0}}
>>
>> and from here on nothing works (not too surprising with such a small
>> frame).
>>
>> Something must be terrible wrong in my setup of NewView, but what?
>
> NewView lacks sufficient constraints to specify its size or position, to
> it is being resized to zero.
>
> I'm guessing NewView is the direct subview of the clip view? If so, you
> _MUST NOT_ change its translatesAutoresizingMaskIntoConstraints
> property, and you _MUST NOT_ try to control its size or position with
> constraints.
>
> I learned that the hard way over the course of several months. It's
> quite a pain in the ass, because a lot of constraints you'll naturally
> want to draw will be just as likely to affect the size of the scroll
> view's documentView as they are to use the size of the documentView to
> affect the subviews.
>
> In our case, we really want to use auto layout to determine the size of
> the documentView. But we don't create any constraints between the
> documentVIew and any of its subviews. Instead, we add a hidden view as a
> subview of the documentVIew, and draw all our constraints relative to
> THAT view. Let's call that the adaptor view. The adaptor view has two
> constraints that pin its origin to the documentView's origin, but
> crucially there are no width or height dependencies between the views.
>
> We then register as observes of the adaptor view's
> NSViewFrameDidChangeNotification and update the size of the documentView
> to match. The scroll view then dutifully updates its scrollers.
>
> It's unfortunate that we have to jump through all these hoops. Apple
> could implement something similar themselves to make working with
> constraints inside an NSScrollView much easier—as easy as it is to use
> constraints with UIScrollView.
>
> --Kyle Sluder
>
>
>
> ------------------------------
>
> _______________________________________________
>
> Cocoa-dev mailing list      (email@hidden)
>
> Do not post admin requests or moderator comments to the list.
> Contact the moderators at cocoa-dev-admins (at) lists.apple.com
>
> https://lists.apple.com/mailman/listinfo/cocoa-dev
>
>
> End of Cocoa-dev Digest, Vol 10, Issue 564
> ******************************************


_______________________________________________

Cocoa-dev mailing list (email@hidden)

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:

This email sent to email@hidden


  • Follow-Ups:
    • Re: ARC vs Manual Reference Counting
      • From: Pax <email@hidden>
    • Re: ARC vs Manual Reference Counting
      • From: Paul Scott <email@hidden>
    • Re: ARC vs Manual Reference Counting
      • From: Alex Kac <email@hidden>
  • Prev by Date: Re: Evil setFrame:
  • Next by Date: Re: ARC vs Manual Reference Counting
  • Previous by thread: Re: Evil setFrame:
  • Next by thread: Re: ARC vs Manual Reference Counting
  • Index(es):
    • Date
    • Thread