小编dre*_*wag的帖子

使用vim的make命令和在子目录上运行make的makefile

我有一个项目设置,有多个子项目都有自己的make文件.主目录中有一个主make文件,cd进入每个项目并以正确的顺序运行make.

makefile命令如下所示:

sub-project/sub-project.a:
    cd sub-project ; make
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是,当我在vim中运行make并报告错误时,vim会尝试根据任何项目出错的相对路径打开文件.有没有办法让vim从根目录而不是子项目目录获取相对路径?

vim makefile

4
推荐指数
1
解决办法
1752
查看次数

UIDocumentInteractionController无法在iOS 11中打开其他应用程序

我的应用程序将PDF分享给另一个第三方应用程序的能力在iOS 11中已经破坏.它显示了共享表,但是当我选择在另一个(第三方)应用程序中打开它时,它只是取消共享表并且什么都不做.

我已经确认的事情:

  • willBeginSending和didEndSending的委托方法都被调用
  • 打开第一方应用程序,如邮件或便笺工作正常
  • 文档选择器仍在内存中
  • 呈现预览工作正常,但预览内部的分享按钮仍然无法打开第三方应用程序
  • 我也试过用UIActivityViewController.共享URL会产生相同的行为.共享原始数据允许您"创建PDF",然后共享该PDF确实有效(但用户体验很糟糕).

有没有其他人经历过这个或有任何想法如何解决它?

以下是显示问题的示例应用程序的完整代码.我在一个新的"单一视图"应用程序中创建了它.故事板只有两个按钮连接到两个动作.

class ViewController: UIViewController {
    var docController: UIDocumentInteractionController!

    @IBAction func open(sender: UIButton) {
//        self.docController.presentPreview(animated: true)
        self.docController.presentOptionsMenu(from: sender.frame, in:self.view, animated:true)
    }

    @IBAction func check() {
        print(self.docController)
    }

    override func viewDidLoad() {
        super.viewDidLoad()

        let url = Bundle.main.url(forResource: "OrderForm", withExtension: "pdf")!
        self.docController = UIDocumentInteractionController(url: url)
        self.docController.delegate = self
    }
}

extension ViewController: UIDocumentInteractionControllerDelegate {
    func documentInteractionControllerViewControllerForPreview(_ controller: UIDocumentInteractionController) -> UIViewController {
        return self
    }

    func documentInteractionController(_ controller: UIDocumentInteractionController, willBeginSendingToApplication application: String?) …
Run Code Online (Sandbox Code Playgroud)

uikit ios uidocumentinteraction swift ios11

4
推荐指数
1
解决办法
1493
查看次数

将dll链接到静态库并将其加载到链接到同一静态库的应用程序中

我正在创建一个应用程序,它支持在运行时动态加载的dll形式的模块.代码按以下方式排列:

  • 核心 - 静态库

    这有一种加载共享库并调用"create"函数的机制,该函数返回一个新的Module对象(使用共享头).

  • 模块共享库(链接到核心静态库)

    此模块使用共享模块头,并使用核心库中的其他类(因此它与核心库链接的原因).它构建为包含静态库中的所有符号.

  • 测试应用程序可执行文件(链接核心静态库)

我变得时髦,看似零星的行为.它们总是在访问冲突中结束,但似乎我非常明确地设置的成员变量(整数)将在后面的函数中打印出来作为垃圾(我已经证实它们之前没有被删除).如果它们加载动态库(即使我从不调用create函数),这似乎只会发生.

我的主要问题是,这里存在危险吗,共享库中的符号会与可执行文件中的符号冲突(因为它们来自同一个静态库)并导致问题,即使它们来自完全相同的静态库?

c++ linker shared-libraries static-libraries

2
推荐指数
1
解决办法
4070
查看次数

Cocoa监视文件以进行修改

我有一个特定文件的文件路径,我想注册,以便在该文件发生更改时(其内容已被修改)得到通知.

我试过搜索谷歌,我找不到一个明确的答案.我已经尝试过kqueue和NSWorkspace,但没有取得多大成功.

这样做的正确方法是什么?

谢谢!

filesystems macos cocoa objective-c

2
推荐指数
1
解决办法
3325
查看次数

SWIFT IF ELSE和Modulo

在Swift中,我需要创建一个简单的for-condition-increment循环,其中所有3的倍数都是3到100.到目前为止,我有:

var multiplesOfThree: [String] = []

for var counter = 0; counter < 30; ++counter {

    multiplesOfThree.append("0")



    if counter == 3 {

        multiplesOfThree.append("3")

    } else if counter == 6 {

        multiplesOfThree.append("6")

    } else if counter == 9 {

        multiplesOfThree.append("9")

    }



    println("Adding \(multiplesOfThree[counter]) to the Array.")

}
Run Code Online (Sandbox Code Playgroud)

我想用以下内容替换所有if和else if语句:if(index%3 == 0)

但我不确定正确的语法是什么?另外,如果我有一个IF语句,我是否需要.append行添加到数组?

swift

0
推荐指数
1
解决办法
5516
查看次数