“NSString”没有可见的@interface 声明选择器“performStringGeocode”

Posted

技术标签:

【中文标题】“NSString”没有可见的@interface 声明选择器“performStringGeocode”【英文标题】:No visible @interface for 'NSString' declares the selector 'performStringGeocode' 【发布时间】:2014-04-14 21:20:52 【问题描述】:

我一直在查看所有形式为“class 的可见@interface 声明选择器method”的问题,但没有一个能说明问题关于这个错误的实际含义。我是新手,如果这是一个愚蠢的错误,请见谅。

我正在寻找有关此错误含义的解释,以及有关如何使错误在我的代码中消失的一些更正!哈哈!

错误是:

//MapViewController.h
#import <UIKit/UIKit.h>
#import <MapKit/MapKit.h>
@interface MapViewController : UIViewController <MKMapViewDelegate>
@property (nonatomic) NSString *fromAddr;
@end

.

//MapViewController.m
@interface MapViewController ()
@end
@implementation MapViewController
@synthesize fromAddr;

- (void)viewDidAppear:(BOOL)animated

[super viewDidAppear:animated];
if (self.isAddrPresent)
    [self.fromAddr performStringGeocode]; //<-- Angry error on this line

- (void)performStringGeocode:(NSString*) addr
//geocode stuff

【问题讨论】:

这只是意味着一个类的接口(.h 文件),在本例中为 NSString,没有名为 performStringGeocode 的方法。 【参考方案1】:

这是因为NSString 的可见界面没有声明选择器performSTringGeocode

实际上,就您的代码而言,它是MapViewController 的方法。

试试

[self performStringGeocode:[self fromAddr]];

【讨论】:

【参考方案2】:

这是错误的:

[self.fromAddr performStringGeocode];

你的意思是:

[self performStringGeocode:self.fromAddr];

至于错误,这意味着self.fromAddr似乎是一个NSString对象,而NSString类上似乎没有任何performStringFromGeocode方法。

【讨论】:

以上是关于“NSString”没有可见的@interface 声明选择器“performStringGeocode”的主要内容,如果未能解决你的问题,请参考以下文章

如何解决错误'UIViewController'没有可见的@interface声明选择器''

没有可见的@interface 声明选择器

没有可见的@interface 声明选择器错误

UIImagePickerControllerSourceTypePhotoLibrary 的“CameraTakePictureOverlay”没有可见的@interface

UITabBar setScrollEdgeAppearance 没有可见的@interface

“MPMediaItem”没有可见的@interface 声明选择器“representativeItem”