小编Bry*_*yon的帖子

用swift处理异常

我对Swift中的异常处理有疑问.UIStoryboard类的UIKit文档指出,如果标识符为nil或故事板中不存在,则instantiateViewControllerWithIdentifier(identifier:String) - > UIViewController函数将引发异常.但是,如果我像下面这样使用do/try/catch,我会收到一条警告"在'try'表达式中没有调用抛出函数."

这只是一个警告,所以我认为这是一个智能问题; 但是当我运行以下代码并故意使用无效标识符时,不会捕获异常并生成SIGABRT.

        let storyboard = UIStoryboard.init(name: "Main", bundle: nil)
    do {
        let controller = try storyboard.instantiateViewControllerWithIdentifier("SearchPopup")

        // This code is only included for completeness...
        controller.modalPresentationStyle = .Popover
        if let secPopoverPresentationController = controller.popoverPresentationController {
            secPopoverPresentationController.sourceView = self.view
            secPopoverPresentationController.permittedArrowDirections = .Any
            secPopoverPresentationController.barButtonItem = self.bSearchButton
        }
        self.presentViewController(controller, animated: true, completion: nil)
        // End code included for completeness.
    }
    catch {
        NSLog( "Exception thrown instantiating view controller." );
        return;
    }
Run Code Online (Sandbox Code Playgroud)

你应该怎么做/ try/catch来抛出像这样的异常的函数?

提前致谢.

布赖恩

exception-handling ios swift

7
推荐指数
2
解决办法
2024
查看次数

minikube 故障排除

我在 macOS 上升级了 minikube,现在我无法启动它(在两台不同的机器上)。我一直在阅读一堆论坛,这似乎是一个常见问题,但没有一致的解决方案,也没有关于如何寻找根本原因的指导。

首次下载 VM 时出错,使用

./minikube start --vm-driver=vmwarefusion
Starting local Kubernetes v1.10.0 cluster...
Starting VM...
Downloading Minikube ISO
 150.53 MB / 150.53 MB [============================================] 100.00% 0s
E0609 09:18:29.104704     891 start.go:159] Error starting host: Error creating host: Error executing step: Creating VM.
: exit status 1.
Run Code Online (Sandbox Code Playgroud)

然后当第二次运行“minikube start”时,它只是停留在“启动集群组件...”的年龄(和年龄),然后超时:

./minikube start 
Starting local Kubernetes v1.10.0 cluster... Starting VM... Getting VM IP address... 
Moving files into cluster... 
Downloading kubeadm v1.10.0 
Downloading kubelet v1.10.0 
Finished Downloading kubeadm v1.10.0 
Finished Downloading kubelet v1.10.0 …
Run Code Online (Sandbox Code Playgroud)

kubernetes minikube

5
推荐指数
2
解决办法
3903
查看次数

如何使用 dlv 处理 stdin/stdout

我正在使用 Delve 进行调试,但在处理标准输入/标准输出的最佳方法方面遇到了问题。

第一个问题是我无法读取控制台。我有一个函数需要使用来自控制台的输入:

func readConsole() string {
    reader := bufio.NewReader(os.Stdin)
    entry, err := reader.ReadString('\n')
    if err != nil {
        tlog.Fatal(fmt.Errorf("readConsole(): Error reading console input. %v", err))
    }
    entry = strings.Replace(entry, "\n", "", -1)
    return entry
}
Run Code Online (Sandbox Code Playgroud)

ReadString() 返回以下“错误文件描述符”错误:

F0208 21:03:56.574021  429026 configurator.go:81] readConsole(): Error reading console input. read /dev/stdin: bad file descriptor
Run Code Online (Sandbox Code Playgroud)

第二个问题是,当我刚刚运行应用程序时, fmt.Printf() 可以工作,但是如果我单步执行源代码, fmt.Printf() 不会显示任何内容。

我知道 dlv 正在通过控制台竞争输入和输出,但不确定如何管理竞争的要求。

go delve

5
推荐指数
0
解决办法
527
查看次数

如何在yq版本4中添加列表项

我正在将脚本从 yq 3 迁移到 yq 4,但无法让一件事正常工作。

我有以下 YAML,并想在 targetNamespaces 之后添加一个列表项:

apiVersion: operators.coreos.com/v1
kind: OperatorGroup
metadata:
  name: businessautomation-operator
  namespace: rhpam-user1
spec:
  targetNamespaces:
Run Code Online (Sandbox Code Playgroud)

所以输出应该是:

apiVersion: operators.coreos.com/v1
kind: OperatorGroup
metadata:
  name: businessautomation-operator
  namespace: rhpam-user1
spec:
  targetNamespaces:
  - rhpam-user1
Run Code Online (Sandbox Code Playgroud)

此命令用于更改名称空间:

yq eval '.metadata.namespace = "rhpam-user1"' -i ./file.yaml
Run Code Online (Sandbox Code Playgroud)

当我运行以下命令时,我收到错误:

yq eval '.spec.targetNamespaces[+] = "rhpam-user1"'  -i ./file.yaml 

Error: '' expects 2 args but there is 1
Run Code Online (Sandbox Code Playgroud)

我似乎无法正确理解新的 yq 命令结构......

yq

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

在Swift中释放对象

我是Swift的新手,我想知道是否有人可以帮助确认我在Apple的Swift中发布对象的理解?

这里CGPathCreateWithRect()描述的文档说明返回值是

"一条新的,不可变的路径.你有责任释放这个对象."

什么时候说"你有责任"就像说当你不再持有引用时垃圾收集器将删除对象一样简单?即你负责管理参考资料?在哪种情况下 - 是不是很明显?如果不是 - 这是什么意思?

谢谢

拜伦

ios swift

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

标签 统计

ios ×2

swift ×2

delve ×1

exception-handling ×1

go ×1

kubernetes ×1

minikube ×1

yq ×1