0

我检查任何子类的框架,如果它改变或没有用下面的代码。

- (void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];
    if(imageFrameSize ==  CGRectZero) {
            imageFrameSize = self.recycleBin.frame;
            NSLog(@"Frame: %@", NSStringFromCGRect(imageFrameSize));
        }
}

现在我想检查字符串是否相同或已更改。基本上我将历史记录存储在history.plist 中。我在下面的委托中运行函数以将文档 url 保存在 history.plist 文件中。

- (void)webViewDidFinishLoad:(UIWebView *)webView {
    //when push to reload is done it will disappear pulltorefresh
    [(PullToRefreshView *)[self.view viewWithTag:998] finishedLoading];

    [UIApplication sharedApplication].networkActivityIndicatorVisible = NO;

    [self actualizeButtons];


   urlPage =[webView stringByEvaluatingJavaScriptFromString:@"document.title"];    //[[[webView request] URL]absoluteString];

   [self addHistoryFunction];


    NSLog(@"WebView Finish Load %@",[[[webView request] URL]absoluteString] );

}

这个功能很好用。但问题是 webViewDidiFinishLoad 为 google 运行了几乎两次,而为其他网站运行了 3 次或多次。所以 addHistoryFunction 使用相同的页面 url 保存历史两次或多次。我想在添加到历史记录之前检查 urlPage 字符串,如果它是更新的新字符串,则运行 addhistory 函数,如果相同则跳过 addhistory 函数。就像上面的 CGRectZero 代码一样。

这就是我在history.plist 中保存历史的想法。如果有更好的然后我的请帮助我或解决我的问题。提前致谢。

4

2 回答 2

0

如果您想与字符串进行比较,这就是

BOOL isTheSameStrings=[mystring isEqualToString:string2];
if (isTheSameStrings){
   NSLog(@"the are the same);
}else{
   NSLog(@"the are NOT the same);
}

或者您想检查是否在数组中找到字符串

BOOL myArrayDoesContainMyString=[myArray containsObject:myString];
if (myArrayDoesContainMyString){
   NSLog(@"myArray contain myString);
}else{
   NSLog(@"myArray does not contain myString);
}
于 2013-01-30T10:17:53.023 回答
0

- (void)webViewDidFinishLoad:(UIWebView *)webView 当 webview 完成在网页中加载对象时调用,因此最好的方法是防止多次调用此方法以添加此行:

if ([webView isLoading]){return;)

此行将确保您的 webview 将在其仅完成加载时执行命令。这是您在编辑后尝试的功能。

- (void)webViewDidFinishLoad:(UIWebView *)webView {
     if ([webView isLoading]){return;)
    //when push to reload is done it will disappear pulltorefresh
    [(PullToRefreshView *)[self.view viewWithTag:998] finishedLoading];

    [UIApplication sharedApplication].networkActivityIndicatorVisible = NO;

    [self actualizeButtons];


   urlPage =[webView stringByEvaluatingJavaScriptFromString:@"document.title"];    //[[[webView request] URL]absoluteString];

   [self addHistoryFunction];


    NSLog(@"WebView Finish Load %@",[[[webView request] URL]absoluteString] );

}
于 2013-01-30T10:04:12.400 回答