分段错误:11 - Xcode 10 [英] Segmentation fault: 11 - Xcode 10

查看:46
本文介绍了分段错误:11 - Xcode 10的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

<块引用>

  1. RangeText 处的类型检查语句={播放列表名称 = []让 requestLibrary = NSFetchRequest(entityName: "Library")

    let request = NSFetchRequest(entityName: "Playlist")request.sortDescriptors = [playlistSortDescriptor]播放列表 = 尝试?context.fetch(request) 作为 NSArray!打印(播放列表计数 - ",播放列表.计数)让图书馆:NSArray!= 试试?context.fetch(requestLibrary) 作为 NSArray!对于图书馆中的图书馆{让 libraryName = (library as AnyObject).value(forKey: "library") as!细绳播放列表名称 += [库名称]}对于播放列表中的播放列表{让 playlistName = (playlist as AnyObject).value(forKey: "playlistName") as!细绳如果播放列表名称 ==图书馆"{播放列表名称.插入(播放列表名称,在:0)}别的 {播放列表名称 += [播放列表名称]}}

    }"

  2. RangeText 中的类型检查表达式="playlists = try? context.fetch(request) as NSArray!"错误:分段错误:11

代码如下:

 func refreshPlaylists(){播放列表名称 = []让 requestLibrary = NSFetchRequest(entityName: "Library")让请求 = NSFetchRequest(实体名称:播放列表")request.sortDescriptors = [playlistSortDescriptor]播放列表 = 尝试?context.fetch(request) 作为 NSArray!打印(播放列表计数 - ",播放列表.计数)让图书馆:NSArray!= 试试?context.fetch(requestLibrary) 作为 NSArray!对于图书馆中的图书馆{让 libraryName = (library as AnyObject).value(forKey: "library") as!细绳播放列表名称 += [库名称]}对于播放列表中的播放列表{让 playlistName = (playlist as AnyObject).value(forKey: "playlistName") as!细绳如果播放列表名称 ==图书馆"{播放列表名称.插入(播放列表名称,在:0)}别的 {播放列表名称 += [播放列表名称]}}}

它在我更新到 Xcode 10 之前就可以工作了.知道吗?

解决方案

没有像 NSArray! 这样的类型,而且在任何情况下,你都没有任何理由去转换它.删除 as NSArray! .使用 Swift 类型.

  1. While type-checking statement at RangeText="{ playlistNames = [] let requestLibrary = NSFetchRequest(entityName: "Library")

    let request = NSFetchRequest<NSFetchRequestResult>(entityName: "Playlist")
    request.sortDescriptors = [playlistSortDescriptor]
    
    playlists = try? context.fetch(request) as NSArray!
    print("Playlist Count - ",playlists.count)
    
    
    let librarys:NSArray! = try? context.fetch(requestLibrary) as NSArray!
    for library in librarys{
        let libraryName = (library as AnyObject).value(forKey: "library") as! String
        playlistNames += [libraryName]
    }
    
    for playlist in playlists{
        let playlistName = (playlist as AnyObject).value(forKey: "playlistName") as! String
        if playlistName == "Library" {
            playlistNames.insert(playlistName, at: 0)
        }else {
            playlistNames += [playlistName]
        }
    }
    

    }"

  2. While type-checking expression at RangeText="playlists = try? context.fetch(request) as NSArray!" error: Segmentation fault: 11

Here is the code:

 func refreshPlaylists(){
    playlistNames = []
    let requestLibrary = NSFetchRequest<NSFetchRequestResult>(entityName: "Library")

    let request = NSFetchRequest<NSFetchRequestResult>(entityName: "Playlist")
    request.sortDescriptors = [playlistSortDescriptor]

    playlists = try? context.fetch(request) as NSArray!
    print("Playlist Count - ",playlists.count)


    let librarys:NSArray! = try? context.fetch(requestLibrary) as NSArray!
    for library in librarys{
        let libraryName = (library as AnyObject).value(forKey: "library") as! String
        playlistNames += [libraryName]
    }

    for playlist in playlists{
        let playlistName = (playlist as AnyObject).value(forKey: "playlistName") as! String
        if playlistName == "Library" {
            playlistNames.insert(playlistName, at: 0)
        }else {
            playlistNames += [playlistName]
        }
    }
}

It works before i updated to Xcode 10. Any idea ?

解决方案

There is no such type as NSArray! and in any case there was never any reason for you to cast to it. Delete as NSArray! throughout. Use Swift types.

这篇关于分段错误:11 - Xcode 10的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆