#import" Project-Swift.h"来了一些奇怪的问题

时间:2016-12-01 10:33:44

标签: ios objective-c swift

项目与ocswift混合在一起。

#import "myProjectName-Swift.h"

中的

AppDelegate.m

Project是我创建的Objective-c语言,使用几乎swift种语言编写。在Appdelegate.m我想使用swift的课程,等等

但不幸的是,我的项目在error中出现了一些myProjectName-Swift.h

the issues

代码如下:

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,`,也不会显示错误。

1 个答案:

答案 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 ...
}