Out of curiosity, did you ever check the retain counts on your webview objects?

I create my webview with:

- (void)setUrl:(NSString *)value
{
    [self willChangeValueForKey:@"url"];
    [self setPrimitiveUrl:value];
    [self didChangeValueForKey:@"url"];

    NSRect rect = NSMakeRect(0, 0, 900, 1164);
webView = [[WebView alloc] initWithFrame:rect frameName:@"MyFrame" groupName:@"MyGroup"];
    [webView setFrameLoadDelegate:self];
    [webView setMainFrameURL:value];
}

and then do the following:

- (void)webView:(WebView *)sender didFinishLoadForFrame:(WebFrame *)frame
{
    if(frame == [sender mainFrame]) {

        ... grab thumbnail image ...

        [webView stopLoading:nil];
        [webView setFrameLoadDelegate:nil];
        NSLog(@"retain count (before): %d", CFGetRetainCount(webView));
        [webView release];
        NSLog(@"retain count (after): %d", CFGetRetainCount(webView));
    }
}

and the log file shows a retain count of 2 before, and 1 after. Something else is holding onto my webView, or it has been so long since I've programmed cocoa in anger that I've lost all sense of alloc/ init behavior.

Cheers,
Tim R.



On Jun 6, 2008, at 7:06 PM, Adam R. Maxwell wrote:


On Jun 5, 2008, at 7:03 PM, Timothy Ritchey wrote:
even if I track frame commit/finish load as suggested in the thread, if I try to get rid of the webview, the world falls down around me when it can't push out that last delegate call of didReceiveTitle.

I generally send stopLoading: to a webview before disposing of it (and set any delegates to nil).

I tried even counting title/icon, etc. and that didn't even help (you can see there are two calls to the title delegate, both for the main frame. There just doesn't appear to be a deterministic way to figure out when WebView is actually done, and safe to release.

Have you tried using -isLoading in the didFinishLoadForFrame: delegate method? After seeing this thread, I switched my own webview thumbnailing code to use that, since previously I was just checking to see if the main frame finished loading. Seems to work.

--
adam


_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to [EMAIL PROTECTED]

Reply via email to