I have an application designed for iPhone OS 2.x.
At some point I have this code
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
//... previous stuff initializing the cell and the identifier
cell = [[[UITableViewCell alloc]
initWithFrame:CGRectZero
reuseIdentifier:myIdentifier] autorelease]; // A
// ... more stuff
}
But as the initWithFrame selector was deprecated in 3.0, I need to transform this code using respondToSelector and performSelector... as this...
if ( [cell respondsToSelector:@selector(initWithFrame:)] ) { // iphone 2.0
// [cell performSelector:@selector(initWithFrame:) ... ???? what?
}
My problem is: how can I break the call on A into preformSelector calls if I have to pass two parameters "initWithFrame:CGRectZero" and "reuseIdentifier:myIdentifier" ???
EDIT - As sugested by fbrereto, I did this
[cell performSelector:@selector(initWithFrame:reuseIdentifier:)
withObject:CGRectZero
withObject:myIdentifier];
The error I have is "incompatible type for argument 2 of 'performSelector:withObject:withObject'.
myIdentifier is declared like this
static NSString *myIdentifier = @"Normal";
I have tried to change the call to
[cell performSelector:@selector(initWithFrame:reuseIdentifier:)
withObject:CGRectZero
withObject:[NSString stringWithString:myIdentifier]];
without success...
The other point is CGRectZero not being an object...