English 中文(简体)
NSMutableArray values becoming "invalid"
原标题:

I m trying to show a database information in a tableview and then the detailed information in a view my problem is as follow:

I created a NSMutableArray: NSMutableArray *myArray = [[NSMutableArray alloc]init]; Then I populated it form a database MyObj *obj = [[MyObj alloc]initWithName:idObj];

When I show the values in the tableview cellForRowAtIndexPath: method everything goes fine, but when I try to load the same array in the didSelectRowAtIndexPath: method, the values in the arrays are "invalid".

The NSMutableArray declaration is as follow:

@property (nonatomic, retain) NSMutableArray *myArray;

Here is the code:

.h file

NSMutableArray *antrosArray; 

@property(nonatomic, retain) NSMutableArray *antrosArray; 

.m file

@synthesize antrosArray; 

//filling the array: 

Antro *antro = [[Antro alloc]initWithName:idAntro nombre:aName]; 
[self.antrosArray addObject:antro];

my problem is:

when I access the array from the cellForRowAtIndexPath: tableView methods, everything goes ok, but when the user selects a record I tried to read the array in the didSelectRowAtIndexPath: method and all the values in my array are invalid.

The array is there, and also the object, but the values for the objects are empty, the cellForRowAtIndexPath: method is cleaning the array.

问题回答

It seems that you are defining a second local variable called myArray. What you should do instead is

self.myArray = [[[NSMutableArray alloc] init] autorelease];

As a matter of fact, you should probably be using -initWithCapacity: instead as well, but that s another matter.

Edit: Thanks Chuck for pointing out my missing autorelease :)

Use retain during definition as well.





相关问题
Asynchronous request to the server from background thread

I ve got the problem when I tried to do asynchronous requests to server from background thread. I ve never got results of those requests. Simple example which shows the problem: @protocol ...

objective-c: Calling a void function from another controller

i have a void, like -(void) doSomething in a specific controller. i can call it in this controller via [self doSomething], but i don t know how to call this void from another .m file. I want to call ...

ABPersonViewController Usage for displaying contact

Created a View based Project and added a contact to the AddressBook using ABAddressBookRef,ABRecordRef now i wanted to display the added contact ABPersonViewController is the method but how to use in ...

NSArray s, Primitive types and Boxing Oh My!

I m pretty new to the Objective-C world and I have a long history with .net/C# so naturally I m inclined to use my C# wits. Now here s the question: I feel really inclined to create some type of ...

NSUndoManager and runModalForWindow:

I have a simple Core Data app which displays a list of entities in the main window. To create or add new entities, I use a second modal window with a separate managed object context so changes can be ...

NSMutableArray values becoming "invalid"

I m trying to show a database information in a tableview and then the detailed information in a view my problem is as follow: I created a NSMutableArray: NSMutableArray *myArray = [[NSMutableArray ...

iPhone numberpad with decimal point

I am writing an iPhone application which requires the user to enter several values that may contain a decimal point (currency values, percentages etc.). The number of decimal places in the values ...

热门标签