将 swift class 导入 objective c 故事板
Import swift class into objective c storyboard
我正在尝试将实施项目 https://github.com/ariok/BWWalkthrough 集成到我的 objective c 项目中。
我有一个 Xcode 自动为我创建的 objc 桥接 header
我翻译了 ViewController.swift 代码
UIStoryboard *sb = [UIStoryboard storyboardWithName:@"Walkthrough" bundle:nil];
BWWalkthroughViewController *walkthrough = [sb instantiateViewControllerWithIdentifier:@"walk"];
BWWalkthroughPageViewController *page_zero = [sb instantiateViewControllerWithIdentifier:@"walk0"];
BWWalkthroughPageViewController *page_one = [sb instantiateViewControllerWithIdentifier:@"walk1"];
BWWalkthroughPageViewController *page_two = [sb instantiateViewControllerWithIdentifier:@"walk2"];
BWWalkthroughPageViewController *page_three = [sb instantiateViewControllerWithIdentifier:@"walk3"];
walkthrough.delegate = self;
[walkthrough addViewController:page_zero];
[walkthrough addViewController:page_one];
[walkthrough addViewController:page_two];
[walkthrough addViewController:page_three];
[self presentViewController:walkthrough animated:YES completion:nil];
然后我像这样导入 swift classes:
进口"SkipTheLine-Swift.h"
我的桥接 header 文件的名称是 "SkipTheLine-Bridging-Header.h"
现在,当我 运行 代码时,我得到了这个
2015-04-25 16:47:46.740 SkipTheLine[1631:215786] 未知 class Interface Builder 文件中的 BWWalkthroughViewController。
2015-04-25 16:47:46.754 SkipTheLine[1631:215786] -[UIViewController setDelegate:]: 无法识别的选择器发送到实例 0x12651cf90
2015-04-25 16:47:46.755 SkipTheLine[1631:215786] * 由于未捕获的异常 'NSInvalidArgumentException' 而终止应用程序,原因:'-[UIViewController setDelegate:]:无法识别的选择器已发送至实例 0x12651cf90'
* 首先抛出调用栈:
(0x1838aa530 0x19482c0e4 0x1838b15f4 0x1838ae3ac 0x1837b2c4c 0x10009c494 0x1880eca14 0x1880d5d08 0x1880ec3b0 0x1880ec03c 0x1880e5590 0x1880b8e60 0x18835846c 0x1880b73d0 0x183862d34 0x183861fd8 0x183860088 0x18378d1f4 0x18cbb76fc 0x18811e10c 0x10009e174 0x194eaaa08)
libc++abi.dylib:以 NSException
类型的未捕获异常终止
关于如何在界面生成器中使用 swift 代码有什么想法吗?
想通了!
您只需要在界面生成器中将MODULE编辑为项目名称即可!!
我正在尝试将实施项目 https://github.com/ariok/BWWalkthrough 集成到我的 objective c 项目中。
我有一个 Xcode 自动为我创建的 objc 桥接 header
我翻译了 ViewController.swift 代码
UIStoryboard *sb = [UIStoryboard storyboardWithName:@"Walkthrough" bundle:nil];
BWWalkthroughViewController *walkthrough = [sb instantiateViewControllerWithIdentifier:@"walk"];
BWWalkthroughPageViewController *page_zero = [sb instantiateViewControllerWithIdentifier:@"walk0"];
BWWalkthroughPageViewController *page_one = [sb instantiateViewControllerWithIdentifier:@"walk1"];
BWWalkthroughPageViewController *page_two = [sb instantiateViewControllerWithIdentifier:@"walk2"];
BWWalkthroughPageViewController *page_three = [sb instantiateViewControllerWithIdentifier:@"walk3"];
walkthrough.delegate = self;
[walkthrough addViewController:page_zero];
[walkthrough addViewController:page_one];
[walkthrough addViewController:page_two];
[walkthrough addViewController:page_three];
[self presentViewController:walkthrough animated:YES completion:nil];
然后我像这样导入 swift classes:
进口"SkipTheLine-Swift.h"
我的桥接 header 文件的名称是 "SkipTheLine-Bridging-Header.h"
现在,当我 运行 代码时,我得到了这个
2015-04-25 16:47:46.740 SkipTheLine[1631:215786] 未知 class Interface Builder 文件中的 BWWalkthroughViewController。 2015-04-25 16:47:46.754 SkipTheLine[1631:215786] -[UIViewController setDelegate:]: 无法识别的选择器发送到实例 0x12651cf90 2015-04-25 16:47:46.755 SkipTheLine[1631:215786] * 由于未捕获的异常 'NSInvalidArgumentException' 而终止应用程序,原因:'-[UIViewController setDelegate:]:无法识别的选择器已发送至实例 0x12651cf90' * 首先抛出调用栈: (0x1838aa530 0x19482c0e4 0x1838b15f4 0x1838ae3ac 0x1837b2c4c 0x10009c494 0x1880eca14 0x1880d5d08 0x1880ec3b0 0x1880ec03c 0x1880e5590 0x1880b8e60 0x18835846c 0x1880b73d0 0x183862d34 0x183861fd8 0x183860088 0x18378d1f4 0x18cbb76fc 0x18811e10c 0x10009e174 0x194eaaa08) libc++abi.dylib:以 NSException
类型的未捕获异常终止关于如何在界面生成器中使用 swift 代码有什么想法吗?
想通了!
您只需要在界面生成器中将MODULE编辑为项目名称即可!!