Objective c UIWebView:代表获胜';别叫了

Objective c UIWebView:代表获胜';别叫了,objective-c,Objective C,我尝试使用给定内容计算UIWebView的大小,但不显示视图。我只需要知道尺寸 我的问题是:当我执行代码时,没有调用UIWebView的委托。为什么? MessageSizeCaluclator.h #import < Foundation/Foundation.h> @class Message; @interface MessageSizeCaluclator : NSObject <UIWebViewDelegate> - (id)initWithMessag

我尝试使用给定内容计算UIWebView的大小,但不显示视图。我只需要知道尺寸

我的问题是:当我执行代码时,没有调用UIWebView的委托。为什么?

MessageSizeCaluclator.h

#import < Foundation/Foundation.h>

@class Message;

@interface MessageSizeCaluclator : NSObject <UIWebViewDelegate>

- (id)initWithMessage:(Message*)message;
- (void)saveSize;

@end

将您的UIWebView添加到一些
UIView
,使其框架脱离屏幕(这样用户就看不到它)。如果
UIWebView
不在应用程序的视图层次结构中,则不会调用委托方法。

在调用代码时,没有视图,没有任何理由不在viewDidLoad中执行此操作?@Tim
MessageSizeCalcator
不是视图控制器,它只是实例化web视图的对象。啊,我的错误,没有阅读接口声明。+1这听起来很正确。在web视图成为视图层次结构的一部分之前,加载数据只是浪费时间和电池电量。
#import "Message.h"
#import "MessageSizeCaluclator.h"


@interface MessageSizeCaluclator () <UIWebViewDelegate>

@property (strong, nonatomic) Message* message;
@property (strong, nonatomic) UIWebView* webView;

@end


@implementation MessageSizeCaluclator

@synthesize message = _message;
@synthesize webView = _webView;


- (id)initWithMessage:(Message*)message
{
self = [super init];

if (self) {
    _message = message;

    // WebView
    _webView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, 10, 10)];
    _webView.delegate = self;
}

return self;
}

- (void)saveSize
{
NSLog(@"%s message = %@", __PRETTY_FUNCTION__, _message.text);

[_webView loadHTMLString:[NSString stringWithFormat:@"<div style='font-family:Helvetica;font-size:13px;'>This is a test</div>", _message.text]
                                 baseURL:nil];
}

#pragma mark - Web view delegate

- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error
{
NSLog(@"%s", __PRETTY_FUNCTION__);
}

- (void)webViewDidStartLoad:(UIWebView *)webView
{
NSLog(@"%s", __PRETTY_FUNCTION__);
}

- (void)webViewDidFinishLoad:(UIWebView *)webView
{
NSLog(@"%s", __PRETTY_FUNCTION__);
}

@end
    MessageSizeCaluclator* messageSizeCalculator = [[MessageSizeCaluclator alloc] initWithMessage:message];
    [messageSizeCalculator saveSize];