我使用Xcode9 Beta6来构建项目,在iOS10设备上正确调用了该操作,但它在iOS11设备上无法正常工作.
在我的项目中,有一些viewControllers顶部有一个UIToolBar,而toolBar包含一些UIBarButtonItems.
有一种这样的viewController,当我点击UIBarButtonItem时,不会调用其UIBarButtonItem动作.我可以看到点击动画(图标变得暗淡,手指释放后恢复正常)
最后viewDidLoad,我打印信息toolbar.items表明正确设置了目标操作.
我在objective-c头文件中定义了一个简单的宏,并通过项目桥接头文件将这个头文件导入到Swift中。我能够在 Swift 中将此宏用作常量,但是当我使用它进行条件编译时,它无法正常工作。
我在 Xcode 10.2.1 中创建了一个简单的项目并添加了一些代码来重现它。在 ViewController.h 中
#define TEST_FLAG 1
@interface ViewController : UIViewController
@end
Run Code Online (Sandbox Code Playgroud)
在 ViewController.m 中
#import "testMacro-Swift.h"
- (void)viewDidLoad {
[super viewDidLoad];
SwiftClass *s = [[SwiftClass alloc] init];
[s printMSG];
#if TEST_FLAG
NSLog(@"Objc works.");
#endif
}
Run Code Online (Sandbox Code Playgroud)
在 testMacro-Bridging-Header.h 中
#import "ViewController.h"
Run Code Online (Sandbox Code Playgroud)
快速文件
@objc class SwiftClass: NSObject {
@objc func printMSG() {
print("Macro \(TEST_FLAG)")
#if TEST_FLAG
print("compiled XXXxXXXXX")
#endif
}
}
Run Code Online (Sandbox Code Playgroud)
控制台输出
Macro 1
2019-07-03 14:38:07.370231-0700 testMacro[71724:11911063] Objc works.
Run Code Online (Sandbox Code Playgroud)
我希望compiled XXXxXXXXX在 之后打印Macro 1 …