2014-09-20 18 views
-3

我第一次創建使用使用未聲明的標識符 - Xcode的

@property (weak, nonatomic) IBOutlet UIWebView *webView; 

然後,我創建了一個使用

@property (weak, nonatomic) IBOutlet UIWebView *webView; 

然後在相應.m文件合成在我SecondViewController.h文件屬性函數來使用用戶將作爲參數投射的字符串創建網頁。功能:

void createWebpage(NSString *webString) { 
NSURL *url = [NSURL URLWithString:webString]; 
NSURLRequest *requestUrl = [NSURLRequest requestWithURL:url]; 
[webView loadRequest:requestUrl]; 
} 

它在哪裏被調用。

- (void)viewDidLoad { 

createWebpage(@"http://www.google.com"); 

[super viewDidLoad]; 
// Do any additional setup after loading the view, typically from a nib. 
} 

然而,在函數的最後一行,[webView loadRequest:requestUrl];,webView的產生錯誤「使用未聲明的標識符‘web視圖’的,這是爲什麼,我該如何解決?所有的幫助表示讚賞。

+1

等待downvotes ...你不熟悉最基礎 - 屬性,實例方法等等... – Injectios 2014-09-20 12:02:14

回答

1

你宣佈一個屬性,它是在一個對象可用但是你宣佈一個簡單的C方法:。

void createWebpage(NSString *webString) { 
NSURL *url = [NSURL URLWithString:webString]; 
NSURLRequest *requestUrl = [NSURLRequest requestWithURL:url]; 
[webView loadRequest:requestUrl]; 
} 

這種方法將在「全球範圍內」,而不是在對象上執行的,因此您可以無法訪問對象屬性。

而是使用方法:

- (void) createWebpage:(NSString *)webString { 
    NSURL *url = [NSURL URLWithString:webString]; 
    NSURLRequest *requestUrl = [NSURLRequest requestWithURL:url]; 
    [self.webView loadRequest:requestUrl]; 
} 

而且你必須使用self來指代當前的對象,當你訪問屬性。

然後,您可以調用這個方法:

[self createWebpage:@"http://www.google.com"]; 

我真的建議你閱讀本:https://developer.apple.com/library/mac/documentation/cocoa/conceptual/ProgrammingWithObjectiveC/Introduction/Introduction.html

+0

這個工作!感謝朋友:) – 2014-09-20 12:29:20

+0

@ Isaac'Criterion'Akalanne我很高興我能幫助你。也許你想接受我的答案。 – idmean 2014-09-20 12:34:34

0

void createWebpage不是一個實例方法,所以實例變量(如webView)不會可以從那裏訪問。
您必須聲明的方法:-(void)createWebpage:(NSString *)webString,並把它作爲[self createWebPage:@"http://www.google.com"];