2014-09-20 3 views
-3

Я первым создал свойство в моем SecondViewController.h файл, используяИспользование необъявленной идентификатора - Xcode

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

И затем синтезируют его в соответствующем .m файл, используя

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

Затем я создал чтобы создать веб-страницу, используя строку, которую пользователь будет использовать в качестве аргумента. Функция:

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 дает ошибку «Использование необъявленной идентификатора 'WebView. Почему это, и как я могу это исправить? Все оцененная помощь.

+1

ждут downvotes ... Вы не знакомы с самых основ - свойства, методы экземпляра и так далее ... – Injectios

ответ

1

вы объявляете свойство, которое является доступны в объекте Но вы объявляете простой метод C:..

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

Этот метод будет выполнен в «глобальном контексте», но не на объекте Таким образом, вы можете 't доступ к свойствам объектов.

Вместо этого используйте метод:

- (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

Это сработало! Спасибо другу :) –

+0

@ Isaac'Criterion'Akalanne Я рад, что помогу вам. Может быть, вы хотите принять мой ответ. – idmean

0

void createWebpage не является методом экземпляра, так что переменные экземпляра (такие как webView) не будет быть доступным оттуда.
Вы должны объявить метод как: -(void)createWebpage:(NSString *)webString, и называют его [self createWebPage:@"http://www.google.com"];

Смежные вопросы