展开segue“在类型'AddBusStopViewController'上找不到'BusStopItem'的属性”
Posted
技术标签:
【中文标题】展开segue“在类型\'AddBusStopViewController\'上找不到\'BusStopItem\'的属性”【英文标题】:Unwind segue "Property of 'BusStopItem' not found on type 'AddBusStopViewController'"展开segue“在类型'AddBusStopViewController'上找不到'BusStopItem'的属性” 【发布时间】:2015-01-29 06:58:06 【问题描述】:本题基于苹果 x-code 教程here。
当我调用查看 segue 源的 unwindBusList
函数时出现错误。我已经在注释掉这些行的情况下对其进行了测试,除了 BusStopItem
没有被添加之外,其他一切似乎都运行良好。
在类型上找不到 BusStopItem 的属性 'AddBusStopViewController'
在这一行:
BusStopItem *item = source.busStopItem;
YourBusStopsTableViewController.m
#import "YourBusStopsTableViewController.h"
#import "BusStopItem.h"
#import "AddBusStopViewController.h"
@interface YourBusStopsTableViewController ()
@property NSMutableArray *busStopItems;
- (IBAction)unwindBusList:(UIStoryboardSegue *)segue;
@end
@implementation YourBusStopsTableViewController
- (IBAction)unwindBusList:(UIStoryboardSegue *)segue
AddBusStopViewController *source = segue.sourceViewController;
BusStopItem *item = source.busStopItem;
if (item != nil)
[self.busStopItems addObject:item];
[self.tableView reloadData];
AddBusStopViewController.h
#import <UIKit/UIKit.h>
#import "BusStopItem.h"
@interface AddBusStopViewController : UIViewController
@property BusStopItem *busStopItem;
@end
AddBusStopViewController.m
#import "AddBusStopViewController.h"
@interface AddBusStopViewController ()
@property (weak, nonatomic) IBOutlet UIBarButtonItem *saveButton;
@property (weak, nonatomic) IBOutlet UITextField *stopNumField;
@property (weak, nonatomic) IBOutlet UITextField *nameField;
@end
@implementation AddBusStopViewController
- (void)viewDidLoad
[super viewDidLoad];
// Do any additional setup after loading the view.
- (void)didReceiveMemoryWarning
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
#pragma mark - Navigation
// In a storyboard-based application, you will often want to do a little preparation before navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
// Get the new view controller using [segue destinationViewController].
// Pass the selected object to the new view controller.
if (sender != self.saveButton) return;
if (self.nameField.text.length > 0 && self.stopNumField.text.length > 0)
self.busStopItem = [[BusStopItem alloc] init];
self.busStopItem.itemName = self.nameField.text;
self.busStopItem.stopNum = [self.stopNumField.text intValue];
self.busStopItem.fetching = NO;
@end
BusStopItem.h
#import <Foundation/Foundation.h>
@interface BusStopItem : NSObject
@property NSString *itemName;
@property NSInteger stopNum;
@property BOOL fetching;
@end
感谢任何和所有反馈,这已经困扰了我几个小时,但没有任何解决我的问题。
提前致谢。
【问题讨论】:
您使用的代码与此处粘贴的完全相同吗?因为错误描述与您的代码不匹配。 是的,我刚刚查过了,我可以链接一个仓库。github.com/Dutchgoose/BusApp 【参考方案1】:问题是我为视图创建的 Objective-c 文件不在适当的目录中。尽管它们在 xcode 中出现在正确的位置(实际上是),但这些版本在我保存时并未更新。我用适当的文件替换了未写入的文件,一切正常。
【讨论】:
以上是关于展开segue“在类型'AddBusStopViewController'上找不到'BusStopItem'的属性”的主要内容,如果未能解决你的问题,请参考以下文章