gpt4 book ai didi

swift - 段错误: 11 in Xcode 10

转载 作者:行者123 更新时间:2023-11-30 11:05:51 25 4
gpt4 key购买 nike

所以我只是更新最新的 Xcode 版本。在 9.4.1 上,看起来不错。但在我将其升级到 10 后,我收到一条错误消息“段错误:11”。这是日志:

  1. While emitting SIL for 'insertOrUpdateChannel(activity:channel:user:completion:)' at /Users/wmotionmac/Project/Wmotion/WWF Content Manager/WWF Content Manager/Model/Api/Api.swift:273:5
  2. While silgen emitFunction SIL function "@$S19WWF_Content_Manager17DetailActivityApiV21insertOrUpdateChannel8activity7channel4user10completionyAA0E0C_AA0J0CAA4UserCySbctFZ". for 'insertOrUpdateChannel(activity:channel:user:completion:)' at /Users/wmotionmac/Project/Wmotion/WWF Content Manager/WWF Content Manager/Model/Api/Api.swift:273:5 error: Segmentation fault: 11

这是 insertOrUpdateChannel 的代码

//TODO:- Create or Update Channel
static func insertOrUpdateChannel(activity: Activity, channel: Channel, user: User, completion: @escaping(Bool)->()) {
let url = URL(string: Base.api + "/channelactivitypage?calendarId=\(activity.id)")
var request = URLRequest(url: url!)
if channel.id.elementsEqual("") {
request.httpMethod = "POST"
} else {
request.httpMethod = "PUT"
}
request.setValue("application/json", forHTTPHeaderField: "Content-Type")

var tema = [String : Int]()
var themes = [[String : Int]]()
var assets = [[String : Any]]()
let email = ["ID": String(describing: "2c53ea1f-6ebe-e811-a977-000d3aa00fc2"), "Name": String(describing: "TV Broadcast"), "List_EmailListModels": nil]

for theme in channel.themes {
if !theme.elementsEqual("") {
tema = ["Value" : Int(theme)!]
themes.append(tema)
} else {
tema = ["Value" : -1]
themes.append(tema)
}
}

if channel.digitalAsset.count > 0 {
for asset in channel.digitalAsset {
let media = ["ID" : asset.id, SerializationKeys.name : asset.name, SerializationKeys.description : asset.description, SerializationKeys.copyRightCredit : asset.copyRightCredit, SerializationKeys.location : asset.location]
assets.append(media)
}
} else {
let media = [SerializationKeys.name : "", SerializationKeys.description : "", SerializationKeys.copyRightCredit : "", SerializationKeys.location : ""]
assets.append(media)
}

let parameters = [["ID" : channel.id, SerializationKeys.name : activity.activityName, SerializationKeys.channelType : channel.channelType, SerializationKeys.publish_date : "2018-09-21T01:00:00Z", "Headline" : channel.headline, SerializationKeys.content : channel.content, SerializationKeys.emailSubject : channel.emailSubject, SerializationKeys.emailURL : channel.emailURL, SerializationKeys.mention : channel.mention, "PostLink" : channel.postLink, SerializationKeys.channelMobileId : channel.mobileId, "Hastag" : nil, SerializationKeys.tema : themes, SerializationKeys.emailGroup : [email], "ApprovalStatus" : channel.channelStatus, SerializationKeys.rubric : channel.rubric, "ApprovalNote" : channel.note, "DigitalAsset" : assets, "ApprovalEmployeeId" : user.id, "ApprovalEmployeeLevel" : user.level]] as [[String : Any]]
request.httpBody = try! JSONSerialization.data(withJSONObject: parameters, options: .prettyPrinted)

Alamofire.request(request).responseJSON { (response) in
switch response.result {
case .success:
let json = JSON(response.result.value!)
if !json["Message"].stringValue.elementsEqual("") {
completion(false)
} else {
completion(true)
}
case .failure(_):
completion(false)
}
}
}

这是 DetailActivity 的代码

DetailActivityApi.insertOrUpdateChannel(activity: self.activity!, channel: channel, user: self.user!) { (isSuccess) in
if isSuccess {
DetailActivityApi.updateDetailActivity(activity: self.activity!, user: self.user!) { (error) in
if error != nil {
print(error!)
Message.connectionFailed()
Loading.hide()
} else {

}
}
self.db.deleteChannelData(id: id, completion: { (isSucceed) in
if isSucceed {
if let digitalAsset = data {
self.db.deleteAsset(id: digitalAsset[self.db.ID]) { (_) in

}
}

self.navigationController?.popViewController(animated: true)
self.dismiss(animated: true, completion: nil)
Message.custom(title: "Submit", body: "Send activity to server", type: .success)
} else {

}
})
}
}
Loading.hide()

最佳答案

好吧,最后,我在 friend 的帮助下找到了解决方案。我的代码有一个错误,更改后,结果如下

static func insertOrUpdateChannel(activity: Activity, channel: Channel, user: User, completion: @escaping(Bool)->()) {
let url = URL(string: Base.api + "/channelactivitypage?calendarId=\(activity.id)")
var parameters: [[String : Any?]] = []
var request = URLRequest(url: url!)
if channel.id.elementsEqual("") {
request.httpMethod = "POST"
} else {
request.httpMethod = "PUT"
}
request.setValue("application/json", forHTTPHeaderField: "Content-Type")

var tema = [String : Int]()
var themes = [[String : Int]]()
var assets = [[String : Any]]()
let email = ["ID": String(describing: "2c53ea1f-6ebe-e811-a977-000d3aa00fc2"), "Name": String(describing: "TV Broadcast"), "List_EmailListModels": nil]

for theme in channel.themes {
if !theme.elementsEqual("") {
tema = ["Value" : Int(theme)!]
themes.append(tema)
} else {
tema = ["Value" : -1]
themes.append(tema)
}
}

if channel.digitalAsset.count > 0 {
for asset in channel.digitalAsset {
let media = ["ID" : asset.id, SerializationKeys.name : asset.name, SerializationKeys.description : asset.description, SerializationKeys.copyRightCredit : asset.copyRightCredit, SerializationKeys.location : asset.location]
assets.append(media)
}
} else {
let media = [SerializationKeys.name : "", SerializationKeys.description : "", SerializationKeys.copyRightCredit : "", SerializationKeys.location : ""]
assets.append(media)
}
let params = ["ID" : channel.id, SerializationKeys.name : activity.activityName, SerializationKeys.channelType : channel.channelType, SerializationKeys.publish_date : "2018-09-21T01:00:00Z", "Headline" : channel.headline, SerializationKeys.content : channel.content, SerializationKeys.emailSubject : channel.emailSubject, SerializationKeys.emailURL : channel.emailURL, SerializationKeys.mention : channel.mention, "PostLink" : channel.postLink, SerializationKeys.channelMobileId : channel.mobileId, "Hastag" : nil, SerializationKeys.tema : themes, SerializationKeys.emailGroup : [email], "ApprovalStatus" : channel.channelStatus, SerializationKeys.rubric : channel.rubric, "ApprovalNote" : channel.note, "DigitalAsset" : assets, "ApprovalEmployeeId" : user.id, "ApprovalEmployeeLevel" : user.level] as [String : Any?]

parameters.append(params)
request.httpBody = try! JSONSerialization.data(withJSONObject: parameters, options: .prettyPrinted)

Alamofire.request(request).responseJSON { (response) in
switch response.result {
case .success:
let json = JSON(response.result.value!)
if !json["Message"].stringValue.elementsEqual("") {
completion(false)
} else {
completion(true)
}
case .failure(_):
completion(false)
}
}
}

关于swift - 段错误: 11 in Xcode 10,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52739013/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com