Xcode 似乎没有找到给定 UITableViewController 的属性,即使我正在导入它并且它们似乎在类上正确定义。
我尝试清理、删除派生数据、重新启动 XCode 并再次构建,但这些都不起作用。还尝试通过设置器访问该属性。
这是我的代码:
主视图控制器.m
#import "DetailTableViewController.h"
...
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([[segue identifier] isEqualToString:@"nextScreen"]) {
DetailTableViewController *detailTableViewController = [segue destinationViewController];
NSInteger tagIndex = [(UIButton *)sender tag];
detailTableViewController.productType = tagIndex;
/*[detailTableViewController setProductType:tagIndex];*/ //This does not work either.
} else if ([[segue identifier] isEqualToString:@"anotherSegue"]){
MyLoginViewController *loginViewController = [segue destinationViewController];
loginViewController.delegate = self; //Funnily enough, this one works
}
}
DetailTableViewController.h #import
@interface DetailTableViewController : UITableViewController<UITableViewDelegate, UITableViewDataSource> {
NSInteger *productType;
}
@property (nonatomic) NSInteger *productType;
@end
DetailTableViewController.m
@implementation DetailTableViewController
@synthesize productType = _productType;
...
编辑:错误出现在这一行:
detailTableViewController.productType = tagIndex;
有谁知道为什么会发生这种情况?谢谢!
更新:
看起来这与 XCode 如何引用我的文件有关,这真的很奇怪:
当我 cmd + 单击 detailTableViewController(我创建实例的地方)时,它会将我带到我的实际代码:
detailTableViewController *detailTableViewController = [segue destinationViewController];
但是当我 cmd + 单击导入行时,它会将我带到一些与我的名称相同的界面,以及相同的声明,但它没有我的代码所具有的任何属性。
#import "DetailTableViewController.h"
有没有人经历过同样的问题?