小编dea*_*eef的帖子

Git壁球在分支中间提交

我想在分支中间将几个提交压缩在一起而不修改前后的提交.

我有 :

A -- B -- C -- D -- E -- F -- G
|                             |
master                        dev
origin/master
Run Code Online (Sandbox Code Playgroud)

我想把它压成

A -- H -- E -- F -- G
|                   |
master              dev
origin/master
Run Code Online (Sandbox Code Playgroud)

在哪里H相当于B -- C -- D.我希望能够指定提交消息H.A是最后一次提交,因此所有提交后都可以重写,而不会弄乱服务器.我的想法是在快进之前清理历史master.

我怎样才能做到这一点 ?

PS:请注意,在我的情况下,我实际上有超过3次提交在中间压缩,但如果我能用3做,我应该能够做更多.

PPS:另外,如果可能的话,我更喜欢一个解决方案E,F并且G保持不变(主要是关于提交日期).

git git-squash

29
推荐指数
1
解决办法
6377
查看次数

将Swift 2闭包转换为Objective-C块

我正在尝试在Swift 2中构建一个Objective-C块,以便将其添加到NSArray类似的内容中:

typealias CompletionBlock = () -> Void
let aBlock:CompletionBlock =  {
    print("Hello world!")
}
let nsArray = NSMutableArray()
nsArray.addObject(aBlock) // Error
Run Code Online (Sandbox Code Playgroud)

我知道它可以很好地使用Swift数组,但我需要一个NSArray与现有Objective-C代码兼容的地方.如果我使用swift数组,编译器将拒绝将其转换为a,NSArray因为它不会是a [AnyObject](它将是a [Any]).

这里的问题是swift闭包不是与Objective-C块相反的对象,Objective-C块是场景后面的对象(它们的实例NSBlock是其子类NSObject)

所以我的问题是:如何在swift中创建一个Objective-C块?我尝试过@convention (block)在typealias中使用但它不起作用.

closures objective-c objective-c-blocks swift2

6
推荐指数
1
解决办法
1291
查看次数

关于字典访问的Swift语义

我正在阅读来自objc.io 的优秀高级Swift书,我遇到了一些我不理解的东西.

如果在游乐场中运行以下代码,您会注意到在修改字典中包含的结构时,副本访问会生成副本,但随后看起来字典中的原始值将被副本替换.我不明白为什么.究竟发生了什么?

还有,有办法避免复制吗?根据这本书的作者,没有,但我只是想确定.

import Foundation

class Buffer {
    let id = UUID()
    var value = 0

    func copy() -> Buffer {
        let new = Buffer()
        new.value = self.value
        return new
    }
}

struct COWStruct {
    var buffer = Buffer()

    init() { print("Creating \(buffer.id)") }

    mutating func change() -> String {
        if isKnownUniquelyReferenced(&buffer) {
            buffer.value += 1
            return "No copy \(buffer.id)"
        } else {
            let newBuffer = buffer.copy()
            newBuffer.value += 1
            buffer = newBuffer
            return "Copy \(buffer.id)"
        } …
Run Code Online (Sandbox Code Playgroud)

swift

5
推荐指数
1
解决办法
751
查看次数

迭代带引号的字符串列表

我正在尝试对字符串列表运行 for 循环,其中一些字符串被引用,而其他字符串则不然:

STRING='foo "bar_no_space" "baz with space"'
for item in $STRING; do
    echo "$item"
done
Run Code Online (Sandbox Code Playgroud)

预期结果:

foo
bar_no_space
baz with space
Run Code Online (Sandbox Code Playgroud)

实际结果:

foo
"bar_no_space"
"baz
with
space"
Run Code Online (Sandbox Code Playgroud)

我可以通过运行以下命令来达到预期的结果:

bash -c 'for item in '"$STRING"'; do echo "$item"; done;'
Run Code Online (Sandbox Code Playgroud)

我想在不生成新的 bash 进程或使用的情况下执行此操作,eval因为我不想冒执行随机命令的风险。

请注意,我不控制 STRING 变量的定义,我通过环境变量接收它。所以我不能写这样的东西:

array=(foo "bar_no_space" "baz with space")
for item in "${array[@]}"; do
    echo "$item"
done
Run Code Online (Sandbox Code Playgroud)

如果有帮助,我实际上想做的是将字符串拆分为参数列表,我可以将其传递给另一个命令。

我有:

STRING='foo "bar_no_space" "baz with space"'
Run Code Online (Sandbox Code Playgroud)

我想运行:

my-command --arg foo --arg "bar_no_space" --arg "baz with space"
Run Code Online (Sandbox Code Playgroud)

bash quotes

5
推荐指数
1
解决办法
3940
查看次数

崩溃报告中的非 UI 角色是什么

在分析崩溃报告时,我看到了一个Non UI我以前从未见过的角色。我试图了解它对应的应用程序的状态。

Hardware Model:      iPhone7,2
Code Type:           ARM-64 (Native)
Role:                Non UI
Parent Process:      launchd [1]
OS Version:          iPhone OS 11.4 (15F79)
Report Version:      104
Run Code Online (Sandbox Code Playgroud)

Role头文件中提到这里,它指向内核源代码。在源代码的最新可用版本(以及以前的版本)中,我看到了一个TASK_NONUI_APPLICATION枚举常量,但它没有记录。

已经有一个TASK_FOREGROUND_APPLICATION和一个TASK_BACKGROUND_APPLICATION常量,所以我不明白Non UI(或TASK_NONUI_APPLICATION)可以是什么。

darwin crash-reports crash-dumps ios xnu

5
推荐指数
1
解决办法
434
查看次数

创建一个Google Analytics视图过滤器,用于排除缺少字段的匹配

我有一个使用Google Analytics的移动iOS应用.

最近我在报告中收到了明显不是来自我的应用程序的点击.我想有人必须使用我的跟踪器ID(我希望,错误).

所以我一直在尝试创建一个不包含此流量的过滤视图.我的第一种方法是在applicationID字段上创建一个包含过滤器,希望能过滤掉任何没有正确applicationID的匹配.使用Google Analytics(分析)iOS SDK时,此字段始终使用应用包标识符进行设置,因此,如果不是不可能的话,非常不可能的是,其他人错误发送的匹配将具有正确的值.

它没有用,在想知道为什么好几天后,我才知道.有关视图过滤器的文档(https://support.google.com/analytics/answer/1033162)实际上说:" 过滤器中指定的字段必须存在于匹配中,而不是为了将过滤器应用于该过滤器点击 ".因此我无法对丢失的字段进行过滤,这是一个问题,因为我收到的那些不需要的命中似乎将所有字段都清空.

这引出了我的问题:以前有没有人遇到过这个问题?如果是的话,你的方法是什么?

目前我正在使用一个未经过滤的视图,其中包含一个自定义段来完成工作(因为使用段可以过滤空字段).但我希望有一个过滤后的视图,我可以应用实际细分.

感谢您的见解

google-analytics ios

3
推荐指数
1
解决办法
1286
查看次数