小编Eth*_*han的帖子

是否有必要在Swift程序中使用autoreleasepool?

它说,在WWDC14演示文稿的第17页

使用Objective-C?还是要管理自动释放池
autoreleasepool {/*code*/}

那是什么意思?这是否意味着如果我的代码库没有任何Objective-C文件,autoreleasepool {}是不必要的?

一个相关问题的答案中,有一个例子autoreleasepool可以是有用的:

- (void)useALoadOfNumbers {
    for (int j = 0; j < 10000; ++j) {
        @autoreleasepool {
            for (int i = 0; i < 10000; ++i) {
                NSNumber *number = [NSNumber numberWithInt:(i+j)];
                NSLog(@"number = %p", number);
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

如果上面的代码被autoreleasepool删除后转换成Swift ,那么Swift是否足够聪明,知道该number变量应该在第一个之后发布}(就像其他语言一样)?

memory-management swift

89
推荐指数
2
解决办法
3万
查看次数

xpath中不区分大小写的匹配?

例如,对于下面的xml

<CATALOG>
    <CD title="Empire Burlesque"/>
    <CD title="empire burlesque"/>
    <CD title="EMPIRE BURLESQUE"/>
    <CD title="EmPiRe BuRLeSQuE"/>
    <CD title="Others"/>
<CATALOG>
Run Code Online (Sandbox Code Playgroud)

如何将前4条记录与xpath匹配//CD[@title='empire burlesque'].是否有xpath函数来执行此操作?其他解决方案,如PHP函数也被接受.

xml xpath

66
推荐指数
5
解决办法
10万
查看次数

是否有JavaScript将HTML转换为markdown?

有markdown.js将markdown转换为HTML,PHP Markdown将markdown转换为HTML和从HTML转换.我的问题是,有没有JavaScript库将HTML转换为markdown?

html javascript markdown

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

JavaScript回调函数中的变量范围

我希望下面的代码警告"0"和"1",但它会两次警告"2".我不明白原因.不知道这是不是jQuery的问题.另外,如果这些帖子的标题和标签不准确,请帮我编辑标题和标签.

<html>
    <head>
        <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
        <script type="text/javascript">
            $(function() {
                for (var i=0; i<2; i++) {
                    $.get('http://www.google.com/', function() {
                        alert(i);
                    });
                }
            });
        </script>
    </head>
    <body>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

javascript jquery

19
推荐指数
2
解决办法
2万
查看次数

将数学表达式与正则表达式匹配?

例如,这些是有效的数学表达式:

a * b + c
-a * (b / 1.50)
(apple + (-0.5)) * (boy - 1)
Run Code Online (Sandbox Code Playgroud)

这些是无效的数学表达式:

--a *+ b @ 1.5.0  // two consecutive signs, two consecutive operators, invalid operator, invalid number
-a * b + 1)  // unmatched parentheses
a) * (b + c) / (d  // unmatched parentheses
Run Code Online (Sandbox Code Playgroud)

我没有匹配浮点数的问题,但是括号匹配有困难.任何的想法?如果有比正则表达更好的解决方案,我也会接受.但正则表达式是首选.

========

编辑:

我想对我对"已接受的答案"的选择做一些评论,希望那些有相同问题并找到这个帖子的人不会被误导.

我认为有几个答案"被接受",但我不知道哪一个是最好的.所以我随机选择了接受的答案(差不多).除了接受的答案,我建议阅读Guillaume Malartre的答案.他们都为我的问题提供了实用的解决方案.有关严谨/理论上的答案,请在接受的答案下阅读David Thornley的评论.正如他所提到的,Perl对正则表达式的扩展(源于常规语言)使其"不规则".(我在我的问题中没有提到任何语言,所以大多数答复者都假设正则表达式的Perl实现 - 可能是最流行的实现.当我发布我的问题时,我也是如此.)

如果我上面说错了,请纠正我.

regex parsing

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

使用jsoup解析XML - 防止jsoup"清理"<link>标记

在大多数情况下,使用jsoup解析XML没有问题.但是,如果<link>XML文档中有标记,则jsoup将更<link>some text here</link>改为<link />some text here.这使得无法<link>使用CSS选择器在标记内提取文本.

那么如何防止jsoup"清理" <link>标签呢?

java link-tag xml-parsing jsoup

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

String类型是类还是结构?或者是其他东西?

class MyString: String {}
Run Code Online (Sandbox Code Playgroud)

给出错误:

从非协议,非类型'String'继承.

所以看起来String不是一个阶级.但为什么它可以用于AnyObject预期的上下文?我虽然AnyObject只是类类型,但Any可以是类或非类类型.

swift

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

对于Swift数组,removeObjectsAtIndexes

什么是斯威夫特阵列相当于一个NSMutableArray-removeObjectsAtIndexes:?逐个删除每个索引不起作用,因为删除一个索引后剩余的索引将会移位.什么是实现此功能的有效方法?

swift

13
推荐指数
6
解决办法
3829
查看次数

在Swift 1.1中覆盖初始化程序的正确方法

这曾经在Xcode 6.1 beta中工作:

class MainViewController: NSViewController {
  convenience override init() {
    self.init(nibName: "MainView", bundle: nil)
  }
}
Run Code Online (Sandbox Code Playgroud)

切换到6.1 GM2后,它无法编译.看起来这个问题与Swift 1.1中引入的" failable initializers " 有关.我试过了convenience override init?(),convenience init?()而且override init?()都没有奏效.

那么今天覆盖这种初始化器的正确方法是什么?

initialization swift

13
推荐指数
1
解决办法
5616
查看次数

编写冒充TTY的程序

我正在编写一个程序,从stdin读取输入,操作输入,并将输出写入stdout.但是,许多程序检查stdin是终端还是管道(通过调用类似函数isatty),并以不同方式生成输出.我如何让我的程序假装成TTY?

该解决方案应适用于Linux和macOS.任何生成独立二进制文件的编程语言都是可以接受的,但Go是首选.

请注意,我问的是一个编程问题,而不是要求一个工具.所以,我喜欢scriptunbuffer不喜欢的东西.

c linux macos go tty

13
推荐指数
1
解决办法
1335
查看次数