无法从Objective-C文件访问Swift类中的变量

时间:2014-07-19 00:05:12

标签: ios objective-c swift xcode6

我正在尝试在Objective-C中开始的现有项目中继续使用Swift。我跟着Apple documentation,我设法通过在我的Obj-C文件中包含“ProductModuleName-Swift.h”标题,从Objective-C文件访问Swift类。

此时这是我的代码:

#include "Pianoconcert_App-Swift.h"

@interface ModelsVC ()

@end

@implementation ModelsVC
// And all that kind of stuff
// ...
-(IBAction)comanda:(UIButton *)sender {
    ComandaTableVC *controller = (ComandaTableVC *)self.tabBarController.viewControllers[2];
    // Here goes the problematic code
    [self.tabBarController setSelectedIndex:2];
}

这段代码没有问题。但是现在我只想在Swift类中设置一个变量:controller.selectedModel = sender.tag,但是Xcode告诉我变量不存在。

这是我的Swift课程的摘录:

import UIKit

class ComandaTableVC: UITableViewController, UIPickerViewDataSource, UIPickerViewDelegate {
    // Declaration of some constants and variables
    // And here goes the one
    var selectedModel: Int = 0
    // And a bunch more of variables and functions
    // ...
}

我不知道我做错了什么。该类似乎完全包含在内,实际上,如果我使用另一个Swift文件中的类,我可以访问该变量和所有其他变量,如下所示:

var controller: ComandaTableVC = self.tabBarController.viewControllers[2] as ComandaTableVC
controller.selectedModel = 2

1 个答案:

答案 0 :(得分:0)

它终于得到了解决,但我无法解释如何解决。 突然,编译器抛出了一个构建错误,告诉我找不到文件 Pianoconcert_App-Swift.h

我为 PianoconcertApp-Swift.h 更改了它,删除了替换空格的下划线,现在我可以正确访问所有变量和常量。