我使用标准的Xcode Swift模板(使用StoryBoards)创建了一个新的OS X Cocoa应用程序.
我已经在AppDelegate.swift中实现了一个IBAction来处理用户何时从"文件"菜单中选择"打开...".如果所选文件是有效的图像文件,我创建一个NSImage,然后我想在ViewController的视图中显示.
@IBAction func openFile(sender: NSMenuItem) {
var openPanel = NSOpenPanel()
openPanel.beginWithCompletionHandler { (result :Int) -> Void in
if result == NSFileHandlingPanelOKButton {
if let imageURL = openPanel.URL {
let image = NSImage(contentsOfURL: imageURL)
// PRESENT image IN THE VIEW CONTROLLER
}
}
}
Run Code Online (Sandbox Code Playgroud)
但是,我没有看到任何方法从AppDelegate连接到ViewController.我只是设法找到了我应该看看self.window的建议!在AppDelegate中,但AppDelegate中没有窗口这样的东西.
谢谢Michael Knudsen
我正在使用Autolayout让我的子视图正确调整大小时遇到麻烦.为了说明我的观点,我将一个简约的例子放在一起.
首先,我创建了一个新的NSViewController,并为其添加了一个子视图(在这种特殊情况下为NSTextView),并添加了Autolayout约束.

然后我为我的MainMenu.xib添加了一个自定义视图,并为此设置了Autolayout约束.

最后,我创建了一个视图控制器的实例,并将其视图放在我的自定义视图中.
#import "AppDelegate.h"
#import "MyViewController.h"
@interface AppDelegate()
@property (weak) IBOutlet NSView *customView;
@end
@implementation AppDelegate
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
MyViewController *myViewController = [[MyViewController alloc] initWithNibName:@"MyViewController" bundle:nil];
[self.customView addSubview:myViewController.view];
myViewController.view.frame = self.customView.bounds;
}
@end
Run Code Online (Sandbox Code Playgroud)
由于在两个xib文件中都选中了"自动调整子视图",因此我希望在调整主窗口大小时调整NSTextView的大小.但是,它只是留在原地.

我在这里错过了什么?这让我困惑了好几天了.
谢谢Michael Knudsen
我使用Arduino来解析从本地网络上的应用程序发送的UDP包.消息包含36个字节的信息.前四个字节表示一个(单精度)浮点数,接下来的四个字节表示另一个,等等.
Arduino函数udp.read()将数据作为字符读取,最后得到一个数组
char data[36] = { ... };
Run Code Online (Sandbox Code Playgroud)
我现在正在寻找一种方法将其转换为相应的九个浮点数.我发现的唯一解决方案是重复使用这个技巧:
float f;
char b[] = {data[0], data[1], data[2], data[3]};
memcpy(&f, &b, sizeof(f));
Run Code Online (Sandbox Code Playgroud)
但是,我相信一定有更好的方法.而不是复制内存块,我可以逃避只使用指针,并以某种方式告诉C将b解释为浮点数?
谢谢
我处于一种情况,我想将我的工作流程分散到可变数量的块中,我事先不知道。也许通过具体来解释问题最容易:
有人递给我使用bcl2fastq该no-lane-splitting选项解复用的 FASTQ 文件。我想根据车道拆分这些文件,单独映射每个车道,然后最后再次收集所有内容。但是,我事先不知道车道数。
理想情况下,我想要这样的解决方案,
rule split_fastq_file: (...) # results in N FASTQ files
rule map_fastq_file: (...) # do this N times
rule merge_bam_files: (...) # merge the N BAM files
Run Code Online (Sandbox Code Playgroud)
但我不确定这是可能的。该expand功能要求我知道车道数,并且无法看到如何为此使用通配符。
我应该说我对 Snakemake 比较陌生,而且我可能完全误解了 Snakemake 的工作原理。我花了一些时间来习惯于通过关注输出文件然后倒退来思考“颠倒”的事情。