我在Swift中编写了一个库,但我无法将其导入到用Objective-C编写的当前项目中.
有没有办法导入它?
#import "SCLAlertView.swift" - 'SCLAlertView.swift' file not found
Run Code Online (Sandbox Code Playgroud) 为什么不ProjectName-Prefix.pch自动创建Xcode 6?
是否不再需要预编译头?
我应该在哪里写下之前的代码ProjectName-Prefix.pch?
我正在尝试将我的一些Obj-C类转换为Swift.还有一些其他的Obj-C类仍在转换类中使用枚举.我在Pre-Release Docs中搜索过但找不到它,或者我错过了它.有没有办法在Obj-C类中使用Swift枚举?或者链接到这个问题的文档?
这就是我在旧的Obj-C代码和新的Swift代码中声明我的枚举的方法.
我的旧Obj-C代码:
typedef NS_ENUM(NSInteger, SomeEnum)
{
SomeEnumA,
SomeEnumB,
SomeEnumC
};
@interface SomeClass : NSObject
...
@end
Run Code Online (Sandbox Code Playgroud)
我的新Swift代码:
enum SomeEnum: NSInteger
{
case A
case B
case C
};
class SomeClass: NSObject
{
...
}
Run Code Online (Sandbox Code Playgroud)
更新:从答案.它不能在Swift旧版本1.2以上完成.但根据这个官方的Swift博客.在雨燕1.2与6.3的XCode一起发布的,您可以通过添加使用SWIFT的枚举Objective-C的@objc前面enum
我有一个在Objective-C中启动的项目,我试图将一些Swift代码导入到我之前编写的Objective-C相同的类文件中.
我在同一个项目中咨询过Apple Sws和Objective-C的文档,以及这样的SO 问题,但仍然无济于事:我在放入后继续得到文件未找到错误#import "NewTestApp-Swift.h"(NewTestApp是产品的名称)和模块).
这是我到目前为止所做的:
Define Modules,YES为应用程序选择.我已经尝试使用#import "NewTestApp-Swift.h"内ViewController.m,ViewController.h和AppDelegate.m但他们没有工作过.
我还做错了什么?谢谢你的帮助.
设置截图:

我目前遇到的错误:

当X代码尝试自动创建桥接头时,它每次都会崩溃,因此我按照有关如何手动创建桥接头的说明进行操作.(创建.h文件,将其命名为<#PROJECT_NAME> -Bridging-Header.h,导入所需的所有.h文件?)
问题是,当我尝试在包含在该头文件中的.swift文件中实例化一个类时,没有任何反应(它表示该类不存在)此外,在桥接头中,它似乎没有自动完成我的文件名时试着把它们包括在内,让我相信一些没有正确联系的事情.
有没有人碰到这个?有谁知道如何修理它?
我试图在Objective-C代码中使用Swift类,但是我的Swift类似乎没有出现在生成的头文件中.结果,我的构建失败了"使用未声明的标识符'HelloWorld'".
我使用模板创建了一个名为TestApp的项目.
我的目标中有以下构建设置:
Apple的文档说要使用,#import <TestApp/TestAppModule-Swift.h>但这不起作用.
相反,我#import "TestAppModule-Swift.h"在我的".m"文件中使用.它似乎找到了这个.
我能够导航到它,它看起来像这样......
// Generated by Swift version 1.0 (swift-600.0.34.4.5)
#if defined(__has_include) && __has_include(<swift/objc-prologue.h>)
# include <swift/objc-prologue.h>
#endif
...etc...
Run Code Online (Sandbox Code Playgroud)
但没有在那里定义的类.
我在项目中有一个Swift文件,看起来像这样......
class HelloWorld {
func hello() {
println("hello world")
}
}
Run Code Online (Sandbox Code Playgroud)
为什么这不使用标准头文件位置#import <TestApp/TestAppModule-Swift.h>?
如何在头文件中获取我的swift类,这样我就不会得到"未声明的标识符"错误?
标题说明了一切.我在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是最新最好的.
但是,这个值定义在哪里,我该如何修改它?
下面是我在构建应用程序时遇到的错误.有没有人有这个错误的经验?
ditto:无法获得源的真实路径'/Users/MyUsername/Library/Developer/Xcode/DerivedData/MyAppName-fwxrneawhopjkqcpeoykduytrgwv/Build/Intermediates/MyAppName.build/Debug-iphoneos/MyAppName.build/Objects-normal/arm64/ MyAppName-Swift.h"
命令/ usr/bin/ditto失败,退出代码为1
任何帮助都会很棒!
如果需要更多信息,请询问.:)
我曾经在AppName -prefix.pch文件中进行全局导入(即对我的Xcode项目中的所有源文件都可见的导入).
但是,现在在Xcode 6(和iOS 8)环境中,创建新项目后,该文件不再自动生成.
我的问题是如何在Xcode 6中正确进行全局导入?我可以创建自己的AppName -prefix.pch并最终使用这个吗?
注意:使用Cocoapods时,会生成一个名为Pods- AppName -Bolts-prefix.pch的文件.但全球进口商品不会与此商品合作.