----- Original Message ----
> From: DKJ <[EMAIL PROTECTED]>
> 
> When I did this:
> 
>     myLayer.frame.size.width = rootLayer.frame.size.width;
> 
> I got an "illegal lvalue" error. But when I do this:
> 
>     CGRect r = help.frame;
>     r.size.width = rootLayer.frame.size.width;
> 
> the compiler says nothing. Why can I use layer.frame.size on the right  
> of =, but not the left?


You can't assign to the return value of a function or method. I think the dot 
syntax is confusing you because it looks the same between structs and object 
properties even though it does completely different things. The (myLayer.frame) 
part calls [myLayer frame], which returns an NSRect value. At that point, you 
have an NSRect value sitting outside of any variable, so you can't assign to 
it. What you're doing is similar to writing this:

[[NSObject alloc] init] = [NSString stringWithString:@"Hello world"];

Does that make more sense?

Cheers,
Chuck


      
_______________________________________________

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