我SearcherProtocol在Swift中写道,需要实现一个FileSearcher必须使用这个协议的Objective-C类.
所以我尝试了这个:
#import <Foundation/Foundation.h>
@interface FileSearcher : NSObject <SearcherProtocol>
// ... class content
@end
Run Code Online (Sandbox Code Playgroud)
编译告诉我
找不到'SearcherProtocol'的协议声明
modulename-Swift.h正在导入相应的桥接头文件()FileSearcher.m.
导入SearcherProtocol到FileSearcher.h抛出另一个编译器错误:module name-swift.h file not found
有没有人知道我做错了什么?
我正在使用Xcode 6 Beta 5.
编辑
这是Swift中的协议声明:
@objc protocol SearcherProtocol
{
var searchNotificationTarget: SearchCompletedProtocol? { get }
var lastSearchResults: [AnyObject] { get set }
func search(searchParam: String, error: NSErrorPointer) -> Bool
}
Run Code Online (Sandbox Code Playgroud)
而SearchCompletedProtocol:
@objc protocol SearchCompletedProtocol
{
func searchCompletedNotification(sender: AnyObject!)
}
Run Code Online (Sandbox Code Playgroud) 我开始用Xcode 5开发应用程序,我想知道助理编辑器的行为.几个星期前它总是打开文件的对应部分(打开.h文件,打开相应的.m文件等).
由于几周它总是在"手动"模式下打开一个"随机"文件,所以我总是需要手动切换回"对应部分".
有没有人知道是否有一个选项(在Xcode配置中的任何地方)可以恢复旧的行为?开始输入然后意识到我已经改变了一个我不想改变的文件,这非常烦人.
搜索此论坛后,我找到了一个建议删除"派生文件"的帖子.我这样做了(重新启动Xcode并重新构建了项目),但它没有用.
提前致谢.
亚历克斯
我已经使用Swift创建了一个Xcode项目,并使用了Objective-C创建了一个特权助手工具。helper工具在也是在Objective-C中创建的项目中可以很好地工作,但是在用Swift创建的项目中似乎不起作用。
服务本身正在安装。我可以在/Library/PrivilegedHelperTools目录中看到辅助二进制文件,并且它的权限似乎还可以(以及用户:)root。使用项目删除帮助程序会launchctl导致在我的项目运行时(按预期方式运行)重新安装该工具,但是我无法调用该帮助程序工具的任何方法。
既不会引发任何异常,也不会发生任何其他错误(至少似乎没有错误,因为控制台也什么也不显示)。
有人知道这可能与Swift无关吗?因为在另一个项目(用Objective-C编写)中运行相同的帮助工具非常有效。
我正在尝试从自己的nib文件创建一个NSWindow,但它似乎比我预期的更难...
NSWindowController提供了init(windowNibName: String?)一种可以被子类覆盖的方法.似乎不可能在init(windowNibName: String?)不覆盖它的情况下调用基类(编译器显示错误消息,即没有采用该String参数的初始化程序).
但是当重写此init(...)方法时,您必须遵循初始化链,这会强制您调用指定的初始化程序.这个指定的初始化程序是init(window: NSWindow!).
这就是我现在被困住的地方......似乎我必须创建一个NSWindow对象(不知何故)才能将它传递给指定的初始化程序.但我不知道如何从nib文件创建NSWindow.
有人有任何线索吗?