【问题标题】:No visible @interface for 'UITableView' declares the selector 'setShowsUserLocation:''UITableView' 没有可见的@interface 声明选择器'setShowsUserLocation:'
【发布时间】:2013-11-10 12:07:36
【问题描述】:

我有一个包含 UItableView、地图视图和段控制的 viewController,如下图所示:

![在此处输入图片描述][1]

TestViewController.h

@interface TestViewController UIViewController:<MKMapViewDelegate,CLLocationManagerDelegate,UITableViewDataSource,UITableViewDelegate> {CLLocationManager * locationManager;}

TestViewController.m

 MyMap.delegate=self;
// Ensure that you can view your own location in the map view.
[MyMap setShowsUserLocation:YES];

UItableView 工作正常,但是当我写“[MyMap setShowsUserLocation:YES];”时它显示错误

这是错误信息: 'UITableView' 没有可见的@interface 声明选择器'setShowsUserLocation:'

提前致谢

【问题讨论】:

  • ...图片在哪里?
  • 很遗憾,因为我是新用户,所以我不能把它放在那里!

标签: ios iphone objective-c uitableview mapkit


【解决方案1】:

MyMap@interface 中声明为UITableView。将其更改为MKMapView

【讨论】:

    【解决方案2】:

    更仔细地检查您的错误。据此,MyMap 类是UITableView 的子类,而不是应有的MKMapView

    所以,在MyMap.h 文件中,更改:

    @interface MyMap : UITableView
    

    @interface MyMap : MKMapView
    

    您的错误告诉您的是,在UITableView 类中,没有名为setShowsUserLocation 的方法,这是正确的。因此,父类更改为MKMapView


    如果您的outlet 设置不正确,请通过从UITableView 中删除所需的outlet 并将其设置为所需的MKMapView 对象来修复它。

    【讨论】:

    • 你错了 MyMap 不是一个类,而是一个对象。我同意这是不好的代码风格。但仍然。
    • 他在他的代码中创建了该类的一个对象。他必须修改类,因为对象是从类中创建的。因此,只有将类 MyMap 修改为MKMapView 的子类,对象才会跟随。
    • 然后插座被错误地设置为UITableView而不是MKMapView
    • 是的,我确实将它设置为 UItableView 不正确......现在它工作正常
    • 所以,我的回答确实解决了您的问题。你把我的标记为不正确是非常不公平的:'(
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多