小编Nas*_*ash的帖子

xcode6 beta7 prepareForSegue抛出EXC_BAD_ACCESS

我刚刚安装了XCode6 Beta-7,现在我的一个PrepareForSegue方法看到了一个访问异常 - (当Modal Segue即将解除时调用)

有问题的代码如下所示:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) {


    if (segue.identifier == "MY_IDENTIFIER") { //EXC_BAD_ACCESS (code=1, address=0x0)
        //Never gets here...
    }


}
Run Code Online (Sandbox Code Playgroud)

我已经尝试将segue参数设置为可选,但就Swift而言,segue不是零,所以即使使用如下的检查,我也有同样的失败......

override func prepareForSegue(segue: UIStoryboardSegue?, sender: AnyObject!) {

    if (segue != nil) 
       if (segue!.identifier == "MY_IDENTIFIER") { //EXC_BAD_ACCESS (code=1, address=0x0)
           //Never gets here...
       }
    }


}
Run Code Online (Sandbox Code Playgroud)

应用程序中的所有其他segue似乎工作正常,但这一个是失败的 - 并且它似乎仅在发布展开的情况下发生.还有其他人遇到过吗?

编辑/解决方法

一个简单的解决方法是避免使用unwindSegue方法并简单地调用dismissViewControllerAnimated,但我仍然想知道为什么unwindSegue方法在这个实例中失败...

非常感谢!

ios uistoryboardsegue swift xcode6-beta7

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

Swift 4:Inbuilt String.hashValue为不同的字符串生成相同的结果

在使用Swift的内置字符串hashValue生成哈希值的同时,我们发现了两个不同的字符串生成相同哈希值的情况......但是碰撞的原因非常令人困惑.

拿这两个字符串:

var str1 = """
00000000000000
00000000000000
00000000000000
00000000000000
00000000000000
00000000100000
00000000000000
00000000000
""" //Contains a single 1 character
var str2 = """
00000000000000
00000000000000
00000000000000
00000000000000
00000000000000
00000000000000
00000000000000
00000000000
""" //Contains only zeroes

str1 == str2 // false
str1.hashValue == str2.hashValue // true ..WAT?
Run Code Online (Sandbox Code Playgroud)
  • 如果我们用单个字符修剪两个字符串,则hashValues是不同的.
  • 如果我们追加不同的字符,则hashValues是不同的.
  • 如果我们追加相同的字符,则hashValues是相同的.

很想知道这里发生了什么......

谢谢

swift

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

标签 统计

swift ×2

ios ×1

uistoryboardsegue ×1

xcode6-beta7 ×1