项目与oc
和swift
混合在一起。
#import "myProjectName-Swift.h"
,中的 AppDelegate.m
Project是我创建的Objective-c
语言,使用几乎swift
种语言编写。在Appdelegate.m
我想使用swift
的课程,等等
但不幸的是,我的项目在error
中出现了一些myProjectName-Swift.h
:
代码如下:
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy)
NSString * _Nonnull 请校对以下信息,由此产生后果本公司不负责;)
+ (NSString * _Nonnull)请校对以下信息,由此产生后果本公司不负责;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy)
NSString * _Nonnull 是否删除银行卡;)
+ (NSString * _Nonnull)是否删除银行卡;
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, strong) UIColor * _Nonnull APP_COLOR;)
+ (UIColor * _Nonnull)APP_COLOR;
错误是:
Expected ';' at end of declaration list.
cannot declare variable inside @interface or @protocal
Expected member name or ';' after declaration specifiers
Expected ']'
Property requires fields to be named
Missing '[' at start of message send expression
等等......
注意力放在
在全局swift
中,我设置了中文字符变量:
class Global: NSObject {
static let 手机号码不能为空 = "手机号码不能为空"
static let 请输入正确的手机号码 = "请输入正确的手机号码"
static let 请输入6位或以上的密码 = "请输入6位或以上的密码"
static let 验证码错误 = "验证码错误"
}
编辑 - 1
因为我认为错误指出了static let 请校对以下信息,由此产生后果本公司不负责 = "请校对以下信息,由此产生后果本公司不负责"
,so I annotation this line, project will not show this
错误. Or I delete the
,`,也不会显示错误。
答案 0 :(得分:0)
Objective-C不支持标识符(变量名,类名,方法名等)中的Unicode,仅支持字符串文字(“”)。只允许使用ASCII子集(以_ [a-zA-Z]开头,之后再加上[0-9])。
示例:
class MyClass : NSObject {
func () { }
}
在混合项目中编译它时会中断。相反,你需要给它一个有效的Objective-C名称,如下所示:
class MyClass : NSObject {
@objc(unhappyFace)
func () { }
}
将编译(你需要在ObjC一侧以unhappyFace
的形式访问它)。
或者在您的示例中,您需要修改Global对象:
class Global: NSObject {
@objc(emptyNumberNotAllowed)
static let 手机号码不能为空 = "手机号码不能为空"
... etc ...
}