She*_*mus 16 xcode objective-c ios swift objective-c-swift-bridge
标题说明了一切.我在SWIFT_MODULE_NAME的构建设置中搜索过,但没有任何内容.我也在线搜索,并且有对此名称的引用,但没有关于如何定义的信息.此外,我在Apple Docs中找不到任何提及SWIFT_MODULE_NAME的信息.
我知道这一点:它用于"Objective-C Generated Interface Header Name"构建设置,可以通过双击设置值来查看:
$(SWIFT_MODULE_NAME)-Swift.h
它用于弥合Objective-C和Swift之间的差距,并且只出现在包含Swift文件的项目中(以及我假设的Objective-C文件).截至发布时,Xcode 7.3是最新最好的.
但是,这个值定义在哪里,我该如何修改它?
jtb*_*des 28
模块名称来自产品模块名称构建设置:
该SWIFT_MODULE_NAME
设置显然是隐藏的,但您可以通过查看以下内容来查看其派生Xcode.app/Contents/PlugIns/Xcode3Core.ideplugin/Contents/SharedSupport/Developer/Library/Xcode/Plug-ins/XCLanguageSupport.xcplugin/Contents/Resources/Swift.xcspec
:
...
{
Name = "SWIFT_MODULE_NAME";
Type = String;
DefaultValue = "$(PRODUCT_MODULE_NAME)";
CommandLineArgs = (
"-module-name",
"$(value)",
);
},
...
Run Code Online (Sandbox Code Playgroud)
转到构建设置并单击“级别”旁边的 +。看 :
将 NEW_SETTING 替换为 SWIFT_MODULE_NAME 作为设置的名称,无论 .h 文件的模块名称是什么(请不要空格)在右边。
SWIFT_MODULE_NAME、PRODUCT_MODULE_NAME、PRODUCT_NAME、EXECUTABLE_NAME
默认值:
EXECUTABLE_NAME = $EXECUTABLE_PREFIX$PRODUCT_NAME$EXECUTABLE_SUFFIX
SWIFT_OBJC_INTERFACE_HEADER_NAME = $(SWIFT_MODULE_NAME)
SWIFT_MODULE_NAME = $(PRODUCT_MODULE_NAME)
PRODUCT_MODULE_NAME = $(PRODUCT_NAME:c99extidentifier)
PRODUCT_NAME = $(TARGET_NAME:c99extidentifier)
Run Code Online (Sandbox Code Playgroud)
观察:
SWIFT_MODULE_NAME == PRODUCT_MODULE_NAME
Run Code Online (Sandbox Code Playgroud)
c99ext标识符
Xcode 能够替换c99extidentifier
支持来自C99 的扩展字符的变量标识符的值
//for example
PRODUCT_NAME = My Framework
PRODUCT_MODULE_NAME = $(PRODUCT_NAME:c99extidentifier) = My_Framework
Run Code Online (Sandbox Code Playgroud)
EXECUTABLE_NAME
二进制名称
Product Module Name(PRODUCT_MODULE_NAME)
确定import
语句的外观。例如,当您创建一个Library
或一个Framework
.
使用:
//Objective-C
@import module_name;
//Swift
import module_name
Run Code Online (Sandbox Code Playgroud)
Product Name(PRODUCT_NAME)
确定二进制文件的名称。例如 MyFramework.framework
规则是:
SWIFT_MODULE_NAME should equal to PRODUCT_MODULE_NAME
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
9482 次 |
最近记录: |