[英]How to create object in Objective-C?
我是iOS開發的新手。 目前,我正在閱讀本教程http://www.appcoda.com/how-to-handle-row-selection-in-uitableview/ 。 我在閱讀此行時遇到問題
UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
cell.accessoryType = UITableViewCellAccessoryCheckmark;
我知道objective-c中的對象是通過以下方式創建的
classname *objecname = [[classname alloc]init];
我的困惑點是UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
這里如何創建cell
對象? 請告訴細節。
根據您鏈接到的教程,我假設您正在處理選擇行。 選擇一行時,您可以訪問該行的NSIndexPath
,其中包含兩個部分:
有了這些信息,讓我們分解混亂的代碼: UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
UITableViewCell *cell
這部分聲明您的變量。 您已選擇將其命名為cell
。 您可以輕松地將其命名為theCell
,如下所示:
UITableViewCell *theCell
*
表示您正在聲明一個指針,該指針僅是對實際對象或表視圖單元格的引用。
[tableView cellForRowAtIndexPath:indexPath]
tableView
引用剛剛選擇的UITableView
。 UITableView
有一個稱為cellForRowAtIndexPath
的方法,該方法的作用是在UITableView
的指定節和行中檢索單元格。 在您的情況下,它將檢索剛剛選擇的行,並將對該行的引用存儲在cell
變量中。
是的,當聲明一個新對象時,它將采用以下語法:
classname *objecname = [[classname alloc] init];
這里的關鍵詞是new
。 在處理UITableView
行時,您不想創建新的單元格,因為您無法選擇不存在的單元格。 您要獲取用戶剛剛選擇的單元格。
我假設您在didSelectRowAtIndexPath:
方法中有此代碼,對嗎?
如果是這樣,則您正在點擊屏幕上的一個單元格,因此該單元格對象已經存在。 它是在哪里創造的? 在cellForRowAtIndexPath:
內部,您已經編寫了。
所以當你打電話時
UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
它只是為您提供要使用的單元對象,但不會創建新的單元對象。
單元格不是用該行創建的。 該行將引用該indexPath的表視圖中已存在的單元格。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.