Objective-C Implementation Pointers

Posted by Dwaine Bailey on Stack Overflow See other posts from Stack Overflow or by Dwaine Bailey
Published on 2010-04-30T00:26:06Z Indexed on 2010/04/30 1:27 UTC
Read the original article Hit count: 370

Filed under:
|
|

Hi,

I am currently writing an XML parser that parses a lot of data, with a lot of different nodes (the XML isn't designed by me, and I have no control over the content...)

Anyway, it currently takes an unacceptably long time to download and read in (about 13 seconds) and so I'm looking for ways to increase the efficiency of the read.

I've written a function to create hash values, so that the program no longer has to do a lot of string comparison (just NSUInteger comparison), but this still isn't reducing the complexity of the read in...

So I thought maybe I could create an array of IMPs so that, I could then go something like:

for(int i = 0; i < [hashValues count]; i ++)
{
    if(currHash == [[hashValues objectAtIndex:i] unsignedIntValue])
    {
        [impArray objectAtIndex:i];
    }   
}

Or something like that.

The only problem is that I don't know how to actually make the call to the IMP function?

I've read that I perform the selector that an IMP defines by going

IMP tImp = [impArray objectAtIndex:i];
tImp(self, @selector(methodName));

But, if I need to know the name of the selector anyway, what's the point?

Can anybody help me out with what I want to do? Or even just some more ways to increase the efficiency of the parser...

© Stack Overflow or respective owner

Related posts about objective-c

Related posts about imp