Re: [問題] 函式讀不到/Not Fully implement??

看板MacDev作者 ( )時間15年前 (2010/07/26 02:48), 編輯推噓1(101)
留言2則, 1人參與, 最新討論串3/3 (看更多)
※ 引述《inzaghi0507 (KaKa)》之銘言: : 因為我有在表頭檔中使用<UITableViewDataSource> : 所以numberOfRowInSection 和 cellForRowAtIndexPath都必須去實作 : (這樣說不知道對不對^^) 正確說來,完整的 selector 應該說是 tableView: numberOfRowsInSection: 和 tableView: cellForRowAtIndexPath: 兩個冒號後面各跟著一個參數,都是總共兩個參數的函式。 如果使用自動補完, 或者 command 雙擊 "UITableViewDataSource" 打開定義的 .h 檔,可以看到 tableView: numberOfRowsInSection: 實際是定義為這樣(太長了,我分兩行,意思一樣): - (NSInteger)tableView:(UITableView *)table numberOfRowsInSection:(NSInteger)section; 它的回傳值 type 是定義最前面的 (NSInteger), 第一個參數的 type 是第一個冒號後面的 (UITableView *),名稱為後面的 "table" 第二個參數的 type 是第二個冒號後面的 (NSInteger),名稱為後面跟著的 "section" 而 .h 檔中可以看到兩函式上方有個 @required 標記, 這就是為什麼宣告支援 <UITableViewDataSource> 的類別必須實作這兩個函式的原因。 底下的 @optional 部份,就不一定要實作了。 : 但遺憾的是在嘗試輸入這兩個方法時 會找不到這個方法 : (顯示No completions Found) : http://img689.imageshack.us/img689/5598/macosxleopard2010072222.png
: http://img708.imageshack.us/img708/5598/macosxleopard2010072222.png
: 所以程式就無法編譯成功了 : 但非常奇特的是把範例的程式碼貼到我的程式裡卻又可以WORK了(已檢查過都一模一樣) : 研究了很久卻不知道為什麼這樣 : 請問各位高手有遇到類似的問題或是知道為什麼嗎? : 謝謝 試了一下,看來要 auto-complete 完整的: tableView: numberOfRowsInSection 必須從打 table 時就按 Esc, 一旦輸入完冒號後,即使字串都一樣,也無法自動補完了。 至於原po整行輸入完仍有 warning 的原因, 則是因為打成 tableView: numberOfRowInSection: 而非正確的 tableView: numberOfRowsInSection: ... 正巧就是為什麼我們需要自動補完的原因 ... ※ 編輯: Senkousha 來自: 220.136.168.82 (07/26 02:56) ※ 編輯: Senkousha 來自: 220.136.168.82 (07/26 02:56) ※ 編輯: Senkousha 來自: 220.136.168.82 (07/26 02:57)

07/26 23:03, , 1F
感謝詳細的解說 少了那個S的部分之後有發現到了
07/26 23:03, 1F

07/26 23:04, , 2F
檢查了很多次才發現 真的是當局者迷XD
07/26 23:04, 2F
文章代碼(AID): #1CJ8S4Yu (MacDev)
文章代碼(AID): #1CJ8S4Yu (MacDev)