• 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
Re: Accessing a property of a returned object?
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Accessing a property of a returned object?


  • Subject: Re: Accessing a property of a returned object?
  • From: Graham Cox <email@hidden>
  • Date: Sun, 27 Jul 2008 16:58:49 +1000

If a linked-list is the data structure that is the most natural fit, why not just use a linked list? (i.e. don't bother with NSArray etc). Objective-C is C, so you can do whatever you want - there's nothing to say to *have* to use Cocoa containers. I occasionally use classic linked lists in Cocoa code, they work fine.

Having said that, you can also link items that are in an array if that is the best design, nothing to stop you.

I don't think your approach to actually linking the items is all that smart though - normally managing linked lists is pretty straightforward without having to defer stuff for one loop. Instead, insert the new item into the linked list at the head or tail first and then add it to the array, you should find there's no need for any skanky accessors like this.

I'm not answering your actual question - sorry. I'm not familiar with the Obj-C 2.0 property notation so I don't know the answer, but I reckon a better approach to the design will make the need go away anyway.

hth,


Graham


On 27 Jul 2008, at 4:33 pm, Mark Teagarden wrote:

Hi,

I'm working on a strategy game in which a NSMutableArray called 'army' contains a series of Unit objects. Each Unit contains a property called next_unit, which is a pointer to the next unit in the array - I'm implementing a linked-list so that units can be moved sequentially.

Army starts off with six units, which are assigned one at a time to the array:

for(i=0;i<6;i++){
	u = [[Unit alloc] initWithPositionX:24+i Y:14-i];
	[army addObject:u];
	...
	[u release];
}

Obviously when the first unit is added, there's nothing for next_unit to point to, so I have to go back and do it on the next loop iteration, which is where my problem arises:

	if(i > 0) [army objectAtIndex:i-1].next_unit = [army lastObject];

Clearly, what I want to do is get the next-to-last unit in army and point its next_unit pointer to the most recently added unit. However, XCode she don't-a like this:

error: request for member 'next_unit' in something not a structure or union

Is there a recommended way for accessing an ivar with synthesized gettors/settors, that belongs to a returned object?

I hope I've explained my problem clearly enough. Thanks for an advice you may offer.

Mark


_______________________________________________

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

_______________________________________________

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


References: 
 >Accessing a property of a returned object? (From: Mark Teagarden <email@hidden>)

  • Prev by Date: Re: highlighted table column in nib
  • Next by Date: Re: Accessing a property of a returned object?
  • Previous by thread: Accessing a property of a returned object?
  • Next by thread: Re: Accessing a property of a returned object?
  • Index(es):
    • Date
    • Thread