小编Zar*_*ony的帖子

UISearchDisplayController没有结果tableView?

通常,UISearchDisplayController在激活时会使tableView变暗并聚焦searchBar.只要在searchBar中输入文本,它就会创建一个searchResultsTableView,它在searchBar和键盘之间显示.当第二个UITableView被加载/显示/隐藏/卸载时,将调用searchDisplayController的委托.通常它会在输入时显示实时搜索结果或自动完成条目.

在我的应用程序中,我想搜索Web服务,我不想为用户输入的每个字母调用webservice.因此,我想完全禁用searchResultsTableView并在输入文本时保持暗灰色覆盖.然后,一旦他点击搜索按钮,我就会触发搜索(带有加载屏幕).

只返回searchResultsTableView的零行看起来不太好,因为它显示一个带有"无结果"消息的空searchResultsTableView.我试图在它出现时隐藏表(searchDisplayController:didLoadSearchResultsTableView:),但是黑色的灰色叠加层也是隐藏的,这样底层的tableView再次完全可见.

除了从头开始重新创建UISearchDisplayController功能之外的任何想法?

iphone objective-c uisearchbar searchdisplaycontroller

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

如何处理Rust中的阻塞i/o或一般长时间运行的外部函数调用

我需要通过Rust程序中的posix filedescriptor读取外部进程提供的数据.fd连接保持很长时间(小时),另一方不时将数据传递给我.所以我需要不断地读取和处理数据流.

为此,我编写了一个循环,调用libc::read()(实际上是readv)来读取数据并在收到数据时对其进行处理.由于这会阻塞整个调度程序,因此我在新的调度程序(readv)上生成一个任务.只要它运行,这样就可以正常工作,但我找不到一种干净地关闭循环的方法.

由于循环在大多数时间都是阻塞的,所以我不能使用port/chan来通知循环退出.

我尝试通过使用失败的链接任务将其删除来杀死循环任务(生成监督的循环任务,在其中生成链接任务并等待端口上的信号发生,然后task::spawn_sched(SingleThreaded)用它来取消循环任务) .它在测试中运行良好,但fail!()不会中断(任务在读取完成之前不会失败,并且会libc::read()在某个时间点击.

我学到了很多关于libcore来源的知识,但我似乎找不到合适的解决方案.

  1. 有没有办法在Rust中杀死(子)任务,即使它正在执行一些长时间的外部函数调用,如阻塞读取?
  2. 有没有办法在posix filedescriptor上进行非阻塞读取,以便Rust能够控制任务?
  3. 如果用户终止我的程序,我如何对信号作出反应,例如SIGTERM.task::yield()在Rust中似乎没有类似的东西吗?

io ffi task rust

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

如何解析Objective C中的ISO-8601持续时间?

我正在寻找一种简单的方法来解析在Objective C 中包含ISO-8601 持续时间的字符串.结果应该是像a一样可用的东西NSTimeInterval.

ISO-8601持续时间的一个示例:P1DT13H24M17S表示1天,13小时,24分钟和17秒.

iphone datetime objective-c iso8601 nstimeinterval

14
推荐指数
4
解决办法
7193
查看次数

如何将拥有的向量内容与Rust中的静态向量进行比较?

作为测试的一部分,我想声明一个函数返回一个具有适当内容的向量.因此,我将预期数据作为静态变量提供.但是,我找不到将托管矢量的内容与静态矢量变量进行比较的正确方法.

#[test]
fn test_my_data_matches_expected_data () {
  static expected_data: [u8, ..3] = [1, 2, 3];
  let my_data: ~[u8] = ~[1, 2, 3];  // actually returned by the function to test

  // This would be obvious, but fails:
  // -> mismatched types: expected `~[u8]` but found `[u8 * 3]`
  assert_eq!(my_data, expected_data);

  // Static vectors are told to be available as a borrowed pointer,
  // so I tried to borrow a pointer from my_data and compare it:
  // -> mismatched types: expected `&const …
Run Code Online (Sandbox Code Playgroud)

comparison static types vector rust

11
推荐指数
1
解决办法
2812
查看次数

本地化的OpenGraph元信息?

我有一个提供多种语言的网站(目前英语和德语).登录页面/自动将访问者重定向到/ en或/ de.页面上有社交按钮但是使用/ url以便数字(Facebook计数或Google +1计数)不会针对不同的语言进行细分.

当在Facebook上共享指向该站点的链接时,按钮被配置为共享/页面(由于访问者与相似按钮共享相同的URL,因此也计为类似).但是,如果有人只是手动共享网站网址,Facebook就会在他的墙上发布英文说明,即使访问者获得德国网站也是如此.

我想,Facebook会缓存OpenGraph有关网站的信息.有没有办法告诉Facebook本地化的OpenGraph信息,以便访问者可以发布到具有正确语言自动描述的网站的链接?

facebook localization internationalization opengraph

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