没有可见的@interface 声明选择器错误 [关闭]

Posted

技术标签:

【中文标题】没有可见的@interface 声明选择器错误 [关闭]【英文标题】:No visible @interface declares the selector error [closed] 【发布时间】:2013-07-09 08:56:35 【问题描述】:

我的项目中有一个连接类。我想在很多工作中使用这个类。当我尝试调用此类的函数时出现以下错误:没有可见的@interface 声明选择器错误

coreConnection.h

@interface coreConnection:NSArray

    NSData *returnData;

      -(NSArray*)getData;
@end

coreConnection.m

#import "coreConnection.h"

@implementation coreConnection

-(NSArray*)getData:(NSString*)link

    NSOperationQueue *apiCallsQueue = [[NSOperationQueue alloc] init];
    NSURL *URL = [NSURL URLWithString:link];
    NSURLRequest *request = [NSURLRequest requestWithURL:URL];
    [NSURLConnection sendAsynchronousRequest:request queue:apiCallsQueue completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) 
        dispatch_async(dispatch_get_main_queue(), ^
            returnData = data;
        );
    ];
    return [NSJSONSerialization JSONObjectWithData:returnData options:nil error:nil];

@end

viewController.m

#import "coreConnection.h"

- (void)viewDidLoad

    [[self headlineCollectionView]setDelegate:self];
    [[self headlineCollectionView]setDataSource:self];
     [self.headlineCollectionView registerNib:[UINib nibWithNibName:@"HeadLineCell" bundle:nil] forCellWithReuseIdentifier:@"CELL"];
    coreConnection speed=[[coreConnection alloc] init];;
    headline = [speed getData:@"string"];
    [self.headlineCollectionView reloadData];
[super viewDidLoad];

【问题讨论】:

我给你一个提示。看看你是如何在 .h 文件和 .m 文件中声明它的 致所有人:这是另一个很好的例子,可以帮助在没有 cmets 的情况下询问反对票的人。做得好!即使这个话题对反对者来说太容易了,一些帮助 cmets 也会非常有帮助。没有人天生就是一个成熟的程序员。 +1 因为有勇气在狮子量具中提出问题。 你的getData方法没有问题吗?你执行一个异步请求,你更新returnData,但你从完成处理程序中返回它的值......我也认为你不需要在异步请求中使用dispatch_async。 回滚.. 让它成为另一个问题。这也是其他人的未来参考,如果您更改问题的上下文,答案也会变得不正确 @zbMax 我能做对什么,为它 【参考方案1】:

呵呵 问题很简单 您在实现和代码中使用的方法是

-(NSArray*)getData:(NSString*)link

不是

-(NSArray*)getData;

在 .h 文件中声明 所以声明为

-(NSArray*)getData:(NSString*)link;

在.h文件中

编辑

你在分配对象时也错过了*

使用

coreConnection *speed=[[coreConnection alloc] init];;

【讨论】:

该死,我希望我的评论能让 OP 能够自己实现这一点> 呵呵,是的,我等了 5 分钟以上才看到你的评论,但没人明白:D 哈哈 @LithuT.V 。在与 Borrrden cmets 讨论后,我知道了,但我只是支持 Borrrden 的想法.. @Sezgin 你在coreConnection.h 中添加了-(NSArray*)getData:(NSString*)link; 吗?如果您尝试它仍然显示错误? :O @Sezgin :查看编辑【参考方案2】:

您只需要在coreConnection.h 文件中声明您的方法-(NSArray*)getData:(NSString*)link;

【讨论】:

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

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

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

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

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

“Appdelegate”没有可见的@interface 声明选择器“managedObjectContext”

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