小编Mor*_*eu5的帖子

UITableView reloadData自动调用resignFirstResponder

我有这个UITableView与自定义单元格,只能获得预定义的值,因此我使用UIPickerView作为他们的inputView.在我编辑一个字段并需要显示其更新值之前,一切都很快乐.

为了使事情更清晰,更容易维护,我将委托和数据源作为单独的类,并使用通知使它们与tableView交互.因此,在从UIPickerView中选择一个值之后,tableView的数据源会得到通知,然后通知主ViewController,它包含对tableView的引用.从那里我打电话

[_tableView reloadData];
Run Code Online (Sandbox Code Playgroud)

一切似乎都有效,除了UIPickerView消失了,我认为因为细胞被重新生成,某些地方调用了一些resignFirstResponder,或类似的东西.是否有任何其他方法可以使tableView更新其值而无需在某个地方实现自定义方法,这会非常难看?

uitableview ios resignfirstresponder

42
推荐指数
5
解决办法
3万
查看次数

performSegueWithIdentifier vs instantiateViewControllerWithIdentifier

我似乎没有得到这个我不断得到的SIGABRT.我有这个故事板iOS应用程序,在故事板中我有一个UITableViewController.现在,我可以拿一个TVC的单元格并使其推动"segue"视图控制器,但是如果我需要在某些条件下停止"segue"动作呢?显然你不能,因为prepareForSegue:sender:方法不允许它,它似乎是转换即将执行时被调用的唯一回调.

所以我猜我可以进入tableView:didSelectRowAtIndexPath:并以编程方式执行segue.不是最理想的,但仍然......

好吧,事实证明我错了.或者至少,我做错了什么.最明显的方法是

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    [self performSegueWithIdentifier:@"TheOtherIdentifier" sender:self];
}
Run Code Online (Sandbox Code Playgroud)

但整个应用程序崩溃了一个SIGABRT,它没有提供任何有用的信息(是的,我确定是那条线让应用程序崩溃,我检查了调试器:)而且,VC我正在尝试加载已正确设置标识符,因为以下代码

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    UIViewController *vc = [self.storyboard instantiateViewControllerWithIdentifier:@"TheOtherIdentifier"];
    [self.navigationController pushViewController:vc animated:YES];
}
Run Code Online (Sandbox Code Playgroud)

"作品".引号表明这显然不是应该进行这种转换的方式.

现在:想法?

storyboard ios ios5 xcode-storyboard

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

如何从主机解析Docker容器的主机名?

我知道Docker在127.0.0.11运行了一个神奇的dns,所以我想我会尝试

nslookup mycontainername 127.0.0.11
Run Code Online (Sandbox Code Playgroud)

其中mycontainername,当然,容器的名字我想访问.但是,那个超时了.

;; connection timed out; no servers could be reached
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?我在Docker 1.10.3上.如果它有帮助,我用docker-compose1.6.2 拉起一堆容器.

编辑这是Docker 1.10的副本,它通过主机的主机名访问容器

dns docker docker-compose

14
推荐指数
1
解决办法
1万
查看次数

在Mac OS X上构建交叉工具链的最佳方法

过去三周我一直在研究Mac OS X下的交叉开发.我想实现两个不同的结果,但我相信它们可以通过相同的途径实现.我想要

  1. 设置distcc以帮助我使用iMac的旧Gentoo笔记本电脑我最近在家(OS X 10.6,64位原生)我也用于iOS开发,所以Xcode 4工具已经存在;
  2. 开发我的宠物项目,这是x86,x86_64和arm的精灵内核(我会停在这里,因为它是OT).

所以,经过我们在这些情况下做的很多思考之后,我想到了达到第一个目标,我需要设置一个i686-pc-linux-gnu工具链(或者它是i686-unknown-linux -gnu?)包含所有适当的版本(例如gcc-4.4)并使其可以通过distcc调用.这似乎是一项合理的任务,但不幸的是,似乎有更清晰的工具和指令来为sparc或mips等模糊的arch构建工具链,而不是一个合理更新的资源如何以最佳方式使用x86.因此,第一个问题:是否有人成功构建了这样一个工具链并感觉分享痛苦?:)

第二个目标.我目前的工作台是在i686笔记本电脑上使用Gentoo(是的,与第一个目标相同)和所有常规开发的东西,我使用QEMU来测试它(它的gdb集成非常棒).我真正想做的是在旅途中继续使用笔记本电脑(我做很多通勤)并在我回家时继续工作并在iMac上进行测试(git在这方面非常棒).因此,第二个问题:是否有人做过这样的事情并希望分享?

我真的很感激任何意见.认真.

编辑我了解MacPorts,crosstool和crosstool-ng.我尝试从MacPorts安装i386-elf-binutils 2.18只是为了发现我的笔记本电脑里有2.20.另外我无法获得gcc44来生产i686-pc-linux-gnu精灵对象,并且使用i386-elf-gcc不是一个选项,因为我需要4.4而且打包的是4.3.

linux macos cross-compiling

12
推荐指数
1
解决办法
6873
查看次数

如何在Docker容器中挂载-bind?

我有这个容器基于debian:jessie(但这不是很相关,因为我有同样的问题alpine:3.3).我达到了我需要的地步

mount --bind /htdocs/www /home/user/example.com/www
Run Code Online (Sandbox Code Playgroud)

我明白了

mount: permission denied
Run Code Online (Sandbox Code Playgroud)

我在任何内核日志中都找不到任何东西,并且-vvv没有任何有趣的东西.我显然可以在主机上执行此操作(使用任何其他子树/节点对).在上面的示例中,/ htdocs/www是Docker卷的挂载点,但它看起来并不重要,因为我不能mount --bind在容器内部任何子树/节点对.

mount bind docker

11
推荐指数
2
解决办法
8435
查看次数

`在REPL中创建目标Swift AST上下文时出错:(null)`

我已经看到了几个问题(好吧,不是那么多,但有几个)关于SO的问题处理这个错误,但是所提出的解决方案都没有对我有用.这就是我得到的

$ swift
Welcome to Apple Swift version 2.1.1 (swiftlang-700.1.101.15 clang-700.1.81). Type :help for assistance.
warning: Swift error in module repl_swift: 
    Error creating module Swift AST context: couldn't get a ClangImporter
Debug info from this module will be unavailable in the debugger.

warning: Swift error in module dyld: 
    Error creating module Swift AST context: couldn't get a ClangImporter
Debug info from this module will be unavailable in the debugger.

warning: Swift error in module CoreFoundation: 
    Error creating module Swift AST …
Run Code Online (Sandbox Code Playgroud)

xcode command-line-interface read-eval-print-loop swift

10
推荐指数
1
解决办法
2937
查看次数

为什么使用 Nuxt v3 静态生成时 <font-awesome-icon /> 会输出两次后面的内容?

我将vue-fontawesome与 Nuxt 3 一起使用,如此处所述我看到了这种奇怪的行为。说我有这样的东西

<a href="https://example.com"><font-awesome-icon icon="fa-brands fa-twitter" />Example</a>
Run Code Online (Sandbox Code Playgroud)

如果我运行开发服务器,一切都很好,但如果我generate通过静态 HTTP 服务器运行并提供输出,我会打印两次“示例”。如果我将文本包装在标签中,我会得到标签和文本两次(即<span>Example</span><span>Example</span>)。但奇怪的是,生成的 HTML 不包含重复内容,所以我怀疑浏览器中发生了一些奇怪的事情。

您可以从此处获取生成的站点作为可重现的测试用例。https://andreafranceschini.org/files/afnuxt.tgz

我听说vue-fontawesome对 SSR 和静态生成不太满意,但我也看到其他人以同样的方式使用它,所以我想知道我可能做错了什么?

编辑我也将其作为“错误”发布在这里

编辑2解决方法是将图标单独包含在其他东西中,例如标签span

font-awesome vue.js nuxt.js nuxtjs3

10
推荐指数
1
解决办法
859
查看次数

std :: match_results :: size返回什么?

我对以下C++ 11代码感到有点困惑:

#include <iostream>
#include <string>
#include <regex>

int main()
{
    std::string haystack("abcdefabcghiabc");
    std::regex needle("abc");
    std::smatch matches;
    std::regex_search(haystack, matches, needle);
    std::cout << matches.size() << std::endl;
}
Run Code Online (Sandbox Code Playgroud)

我希望它打印出来,3但我得到了1.我错过了什么吗?

c++ regex c++11

8
推荐指数
2
解决办法
2112
查看次数

为什么在 Nuxt 3 中使用 useState 时会收到此水合警告?

MRE: https: //github.com/Morpheu5/nuxt3-Hydration-mre(原为https://box.morpheu5.net/s/H6WXBfCebrRyTa8

根据文档,useStateNuxtJS 3 应该是 SSR 友好的轻量级创建状态的方式。我需要使用它,以便任何人都page/[somepage].vue可以设置一些数据供layout/default.vue. 这是一个页面:

<template>
    <div>Some page content.</div>
</template>

<script setup>
    useState('page_title', () => 'Some page title');
</script>
Run Code Online (Sandbox Code Playgroud)

这是默认布局:

<template>
    <div>
        <h1>{{ page_title }}</h1>
        <slot />
    </div>
</template>

<script setup>
    const page_title = useState('page_title');
</script>
Run Code Online (Sandbox Code Playgroud)

当我在开发模式下运行它时,我在浏览器的控制台中收到此警告:

runtime-core.esm-bundler.js:38 [Vue warn]: Hydration text content mismatch in <h1>:
- Client: 
- Server: Some page title 
  at <Default > 
  at <AsyncComponentWrapper > 
  at <BaseTransition mode="out-in" appear=false persisted=false  ... > 
  at …
Run Code Online (Sandbox Code Playgroud)

hydration nuxtjs3

8
推荐指数
1
解决办法
7944
查看次数

如何重新排序UITableView的部分?

2009年的这个问题没有得到解答,这是互联网上极少数提到这个问题的问题之一.

问题:我想以与行处理相同的方式重新排序UITableView的各个部分(即通过拖动).

我看到这种方式的方式是:你打开桌面上的编辑,重新排序指标出现.当您开始拖动一个节标题(或一个单元格作为假节目标题,这是次优[1])时,所有常规单元格都会"消失",因此您只能移动各个部分(如果你更容易有超过几个部分).

LPRTableView似乎解决了这个问题,但在重新排序部分时正确设置非常棘手.我尝试了一整天并没有取得多大成功.另外,[1].

一个不那么好但可以接受的解决方案是在标题中有像⬆️⬇️这样的按钮(这里可以使用正确的标题),但它有点尴尬.

另一个不那么好但可以接受的解决方案是有一个额外的步骤(比如一个按钮),它会调出一个新的UITableView,只显示这些部分作为单元格,并允许在那里重新排序.工作正常,但创造的问题比解决的问题多[2].

我在文档中看不到任何内容,例如,在重新排序开始/结束时调用的钩子.或者更确切地说,有结束位但我看不到开头的那个.

建议?


[1]原则上,这允许行放在节标题之前,你必须手动捕获它,看起来很糟糕.

[2]我甚至会在哪里放置这样的控件,特别是如果我已经拥挤拥挤的UI,或者我想保持我的UI最小化?

drag-and-drop uitableview ios swift

7
推荐指数
1
解决办法
1067
查看次数