ios6 - 在iOS5中的UITableView中出現dequeueReusableCellWithIdentifier錯誤




(3)

這就是你收到錯誤的原因。 根據iOS 6.0文檔集,UITableView類參考聲明dequeueReusableCellWithIdentifier:在iOS 2.0及更高版本中可用,而dequeueReusableCellWithIdentifier:forIndexPath:在iOS 6.0及更高版本中可用。

我在iOS 5中收到此錯誤

-[UITableView dequeueReusableCellWithIdentifier:forIndexPath:]: unrecognized selector sent to instance 0xa217200

但是,我在iOS 6中沒有錯誤。我該如何解決這個問題? 這是我的代碼:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"MyCell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath]; /// SIGABRT error

    if (!cell)
    {
        cell = [[UITableViewCell alloc]
        initWithStyle: UITableViewCellStyleSubtitle
        reuseIdentifier: CellIdentifier];
    }

    return cell;
}

編輯 :這個方法是在iOS6 + SDK中新增的。

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];

但是在iOS 5中,要創建UITableViewCell實例,我們通常使用這種方法: -

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

在iOS 5中,不需要在iOS 6中使用的額外參數。(forIndexPath :)。

所以改變你的方法。 它會工作。


丹的答案有效。 我只想說,如果你在y <20的storyBoard中設置你的視圖,並通過pin面板配置約束,它將設置為超視圖:





ios ios5 uitableview ios6