没有可见的@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”
“MPMediaItem”没有可见的@interface 声明选择器“representativeItem”