Skip navigation.
 
mlRe: Problems with [NSArray count]
FROM : Peter Browne
DATE : Tue Apr 22 23:45:31 2008

On 22 Apr 2008, at 22:15, David Duncan wrote:

> On Apr 22, 2008, at 2:03 PM, Peter Browne wrote:
>

>> I'm returning to Cocoa after quite a long break, and it seems that 
>> I'm a little rusty...
>>
>> All I want to do is find out the number of items in an NSArray and 
>> store that as a variable, which I can then find the square root of.
>>
>> The docs tell me that [NSArray count] returns an NSUInteger, but 
>> exactly WHAT one of these is, or how I use it is baffling me.

>
> An NSUInteger is just an integer that is 32-bits or 64-bits 
> depending on if your application is compiled for 32-bit or 64-bit.
>

>> a simple
>>
>>     int i = [myArray count];
>>
>> crashes out, and I've tried various other types of variable to no 
>> avail. Any thoughts? Am I missing something blindingly obvious here?

>
>
> Are you getting an exception? perhaps myArray isn't really an 
> NSArray at the time that you are sending it the -count message?


I'm getting an "EXC_BAD_ACCESS" error.

I've since managed to solve the problem by inserting a

[myArray retain];

but I'm not entirely sure WHY this fixed it...

The process followed is:

1) the myController object acquires data from a text file, using 
NSString's -stringWithContentsOfFile:encoding:error
2) myArray then grabs this data (a bunch of numbers) using NSArray's -
componentsSeparatedByString:
3) myController then passes the myArray object to myView (for later 
graph drawing) using my - (void)displayData:(NSArray *)theArray method
4) myView then calls [theArray count]
5) EXC_BAD_ACCESS

inserting a [myArray retain] just before passing the data to the view 
fixed the problem. Why should this be the case?
As far as I'm aware the object isn't being released at that point, so 
what's the need for a -retain message?

Related mailsAuthorDate
mlProblems with [NSArray count] Peter Browne Apr 22, 23:03
mlRe: Problems with [NSArray count] Shawn Erickson Apr 22, 23:10
mlRe: Problems with [NSArray count] Shawn Erickson Apr 22, 23:14
mlRe: Problems with [NSArray count] David Duncan Apr 22, 23:15
mlRe: Problems with [NSArray count] Andy Lee Apr 22, 23:19
mlRe: Problems with [NSArray count] Peter Browne Apr 22, 23:45
mlRe: Problems with [NSArray count] Hamish Allan Apr 22, 23:57
mlRe: Problems with [NSArray count] Shawn Erickson Apr 23, 00:04
mlRe: Problems with [NSArray count] David Duncan Apr 23, 01:08