2013-01-08 34 views
1

請參閱此代碼爲例:IOS - 數據傳遞到另一個方法 - 同樣的viewController

-(void)generateConnection 
{ 

    NSString *urlString = @""; 

    NSURL *url = [NSURL URLWithString:urlString]; 
    NSURLRequest *request = [[NSURLRequest alloc] initWithURL: url]; 
    NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request delegate:self]; 

    NSLog(@"%@", connection); 
} 

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data 
{ 
    NSString *partialData = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; 
    [_jsonContentForText appendString:partialData]; 

    NSLog(@"%@", partialData); 
} 

真的是缺乏瞭解它叫什麼,但搜索後 - 很多 - 我不能出去這個過程被稱爲什麼。

我需要知道-(void)connection:如何從以前的方法中獲取所需的信息。我不知道這是否被稱爲傳遞方法到另一個方法,但我需要創建另一個方法,所以我需要知道我在哪裏可以學到這一點。

請讓我這樣的線:你需要閱讀的Objective-C和一般的東西,因爲這些答案不包括我具體的需要。

只要我知道我在讀什麼解釋這一點,我不介意閱讀它。然而,如果在任何類型的心中很容易解釋,我不會拒絕該提議:-)

+0

當你創建一個連接對象,要設置委託給自。 「[[NSURLConnection alloc] initWithRequest:request delegate:self];」。這就是告訴系統,對於所有回調方法,使用當前對象並調用當前對象中的方法。自我意味着當前對象。不僅此方法,而且連接對象的所有委託方法都在當前對象上調用。請閱讀關於ios中的代表,並且您將知道發生了什麼。 – Srikanth

+0

那麼,我只能爲每個ViewController創建一個NSURLConnection?沒關係,只要我明白了 - 我的意思是我理解它的方式,是我無法區分下列方法,因爲它們基於委託 - 這是自我。 –

回答

1

您需要閱讀委託和議定書。當您創建NSURLConnection並將self設置爲委託時,將通知您的新NSURLConnection對象查詢self(創建該對象的對象)以執行諸如是否支持驗證或接收某些數據時要執行的操作等操作。具體而言,對於NSURLConnectionDelegate,如果您的委託實現了NSURLConnectionDelegate Protocol中定義的方法,則會調用它們。

很好的信息來源閱讀了關於代表和議定書是:

+0

謝謝 - 我知道閱讀涉及到了,所以我會正確地做到這一點:-) –

+0

關於支持多連接的問題 - 是的,這完全有可能。精心設計的'Protocols'支持將調用對象作爲參數傳遞給委託方法。您可以使用它來確定哪個特定的連接(可以說有一組連接)正在進行呼叫。祝你好運! – rickerbh

+0

謝謝:-)這將是一個挑戰:-) –

相關問題