简体   繁体   English

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

[英]No visible @interface declares the selector

I have a SSLYFoodDetailViewController.h whose contents are 我有一个SSLYFoodDetailViewController.h其内容是

#import <UIKit/UIKit.h>

@interface SSLYFoodDetailViewController : UIViewController

@property(nonatomic, weak) NSString *foodItem;
@property(nonatomic, weak) NSString *restaurantName;

- (void) setFoodItem:(NSString *)foodItem;
- (void) setRestaurantName:(NSString *)restaurantName;

@end

In another file SSLYTableViewController.m inside the prepareForSegue method, I try to do the following - prepareForSegue方法内的另一个文件SSLYTableViewController.m ,我尝试执行以下操作-

SSLYFoodDetailViewController *sslyFoodDetailViewController = [segue destinationViewController];
[sslyFoodDetailViewController setFoodItem:@"Pasta"];

XCode is giving me an error that there is No visible @interface for 'SSLYFoodDetailViewController' declares the selector 'setFoodItem' . XCode给我一个错误,即No visible @interface for 'SSLYFoodDetailViewController' declares the selector 'setFoodItem'

At the top of the SSLYTableViewController.m , I have the import statement - SSLYTableViewController.m的顶部,我具有import语句-

#import "SSLYFoodDetailViewController.h"

What is it that I am missing? 我想念的是什么?

That doesn't make any sense, except that setFoodItem: is implied by the foodItem @property declaration. 这并没有任何意义,除了setFoodItem:由foodItem暗示@property声明。

Try removing the declarations for setFoodItem: and setRestaurantName: in your header - that definitely won't hurt anything because they're redundant. 尝试删除标头中setFoodItem:setRestaurantName:的声明-绝对不会造成任何伤害,因为它们是多余的。

If that doesn't work, try the property accessor notation: 如果这不起作用,请尝试使用属性访问器表示法:

sslyFoodDetailViewController.foodItem = @"Pasta";

Also of note, you're probably getting a warning on the line: 还要注意,您可能会在网上收到警告:

SSLYFoodDetailViewController *sslyFoodDetailViewController = [segue destinationViewController];

You should add an explicit cast in that line, as follows: 您应该在该行中添加一个显式强制转换,如下所示:

SSLYFoodDetailViewController *sslyFoodDetailViewController = (SSLYFoodDetailViewController *) [segue destinationViewController];

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM