views:

113

answers:

2

I just cannot imagine what the hell the problem could be. I made a pretty app, and decided to use only CALayers to "render".

When I saw that the changes in the position property gets animated, decided to implement a custom getter-setter "abstract" property called tanCenter to set the position without animating.

-(void) setTanCenter: (CGPoint) sentCenter
{   
    //Remove any transactions.
    [CATransaction begin];
    [CATransaction setValue:(id)kCFBooleanTrue forKey:kCATransactionDisableActions];
        //Set position.
        self.position = sentCenter;
    [CATransaction commit];

    //Set value.
    tanCenter = sentCenter;
}
-(CGPoint) tanCenter { return tanCenter; }

Since I merged this into the project, it crashes without any "understandable" (for me) error message. I can see only those "out of scope"-s. I cant even get this tanCenter property NSLog-ged without crash.

Help me, Obi-Wan Kenobi; you're my only hope.

A: 

If you run in the debugger (Command-Y) and make sure you have global breakpoints enabled, the debugger should stop at the place where the crash occurred giving you an idea of what is nil or over-released.

Matt Long
A: 

hey I had the same problem till now. Finally I have found my bug after investigating 2 weeks of bug tracking (it really sucks)

maybe my problem helps you:

I started with a TableView that opens on click another view. So I created in:

-(void)tableView:didSelectRowAtIndexPath:

first the controller for the other view and set the value for a global variable:

SomeView *dtview = [[SomeView alloc] initWithNibName:@"SomeView" bundle:nil];
dtview.lblTitle = cl.textLabel.text; // cl is the cell
[self presentModalViewController:dtview animated:NO];
[dtview release];

So opened the other view and done much functions with much memory usage :)

When I after that close the other view and go back to the table and scroll some times the App terminates with the message "out of scope"

I searched really, really long to find out what was the effect. It seems that when the other view is released also the text of the first table is released.

After putting a copy to the call it worked for me:

dtview.lblTitle = [cl.textLabel.text copy];

For int and bool the first solutions works fine, because these aren't objects but for NSObject's you should copy the values to another view.

iPortable