'UITableViewCell'没有可见的@interface声明选择器'dequeueReusableCellWithIdentifier:'

时间:2016-04-10 19:24:30

标签: ios objective-c uitableview

我是Objective-C的新手,并且一直在尝试使用UITableView。这是我得到错误的方法:

-(UITableViewCell *)tableView:(UITableViewCell *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"MainCell"];

    if(cell == nil){
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"MainCell"];
    }
}

有人可以帮帮我吗?

2 个答案:

答案 0 :(得分:3)

方法签名错误,应该是

self.interstitial.isReady

import UIKit
import SpriteKit
import GoogleMobileAds

class GameViewController: UIViewController {

    var interstitial = GADInterstitial(adUnitID: "ca-app-pub-3940256099942544/4411468910")

    override func viewDidLoad() {
        super.viewDidLoad()
        let request = GADRequest()
        // Requests test ads on test devices.
        request.testDevices = ["2077ef9a63d2b398840261c8221a0c9b"]
        self.interstitial.loadRequest(request)
        }
    func displayAd() {
        print(self.interstitial.isReady)
        if self.interstitial.isReady {
            self.interstitial.presentFromRootViewController(self)
        }
    }
}

答案 1 :(得分:1)

通常,当您看到类似的错误消息时,您应该查找要将消息发送到的变量的类型。

在这种情况下,问题是您输入了方法的签名错误:第一个参数类型是-(UITableViewCell *)tableView:(UITableViewCell *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath // ^^^^^^^^^^^^^^^ ,而不是-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath // ^^^^^^^^^^^

{{1}}

这应该是

{{1}}