草庐IT

swift 2 (executeFetchRequest) : error handling

coder 2023-07-15 原文

我遇到了一些我无法弄清楚的代码问题。在我安装 Xcode 7 beta 并将我的 swift 代码转换为 Swift 2 之后

代码:

override func viewDidAppear(animated: Bool) {

    let appDelegate: AppDelegate = UIApplication.sharedApplication().delegate as! AppDelegate

    let context: NSManagedObjectContext = AppDel.managedObjectContext
    let request = NSFetchRequest(entityName: "PlayerList")

    list = Context.executeFetchRequest(request)

    tableView.reloadData()
}

截图:

最佳答案

从 Swift 2 开始,产生错误的 Cocoa 方法被转换为抛出错误的 Swift 函数。

代替 Swift 1.x 中的可选返回值和错误参数:

var error : NSError?
if let result = context.executeFetchRequest(request, error: &error) {
    // success ...
    list = result
} else {
    // failure
    println("Fetch failed: \(error!.localizedDescription)")
}

Swift 2 中,该方法现在返回一个非可选的并抛出一个错误 在错误情况下,必须使用 try-catch 处理:

do {
    list = try context.executeFetchRequest(request)
    // success ...
} catch let error as NSError {
    // failure
    print("Fetch failed: \(error.localizedDescription)")
}

有关详细信息,请参阅 "Adopting Cocoa Design Patterns" 中的“错误处理” 在"Using Swift with Cocoa and Objective-C"文档。

关于 swift 2 (executeFetchRequest) : error handling,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30954722/

有关swift 2 (executeFetchRequest) : error handling的更多相关文章

  1. swift - 将 json 编码时间转换为 nsdate - 2

    当我将time.Now()编码到JSON对象时,它给出的结果为"2009-11-10T23:00:00Z"但打印时间。现在给出2009-11-1023:00:00+0000UTC。他们为什么不同。什么是T和Z。另外,如何根据this将其转换为swiftNSDate对象?表? 最佳答案 这些值的含义无关紧要,它们是该格式(ISO8601)的一部分。有几种方法可以解决这个问题。一种是为时间或您的结构定义自定义MarshalJSON()方法并使用它来格式化日期,另一种是首先在您的结构中将其表示为字符串,以便当默认实现执行你得到你正在寻找的

  2. objective-c - 为什么 Swift 函数定义语法是多余的? - 2

    在C/C++/Java/Go中,我们使用,来分隔参数:(aint,bint)在ObjectiveC中,我们使用:来表示参数::(int)a:(int)b在Swift中,我们必须同时使用:和,:(a:int,b:int)是否需要冗余? 最佳答案 Swift可能有外部和内部参数名称:(externalinternal:Int)如果没有独特的分隔符,会产生很多歧义。 关于objective-c-为什么Swift函数定义语法是多余的?,我们在StackOverflow上找到一个类似的问题:

  3. swift - Swift 和 Go 之间的 Zlib 压缩 - 2

    我的Swift应用程序与用Go编写的服务器通信。我希望使用Zlib压缩传输的数据,但压缩结果似乎与Swift和Go不同。这是Go版本:sourceString:="A-t-ellebesoind'autrespreuves?Acceptez-lapourleplaisir.J'aitantfaitquedelacueillir,Etc'estpresqueunefleur-des-veuves."//Compressionvarbbytes.Bufferwriter:=zlib.NewWriter(&b)writer.Write([]byte(sourceString))writer.

  4. ios - swift api SecKeyCreateEncryptedData 使用的额外认证数据是什么? - 2

    我正在使用rsaEncryptionOAEPSHA256AESGCM在iOS上使用SecKeyCreateEncryptedData加密一些数据,然后在golang后端解密相同的数据。我正在使用3072位rsa公钥来加密对称key。当我从iOS获取数据到后端时,我能够成功解密对称key,但gcm标签验证失败。我使用的是与iOS相同的16字节IV,但不知道iOS在加密时是否使用任何aad(附加身份验证数据)。有谁知道rsaEncryptionOAEPSHA256AESGCMforiOS是否使用了一些aad?这适用于iOS10+。我已经尝试过使用nil、空的16字节数组、aeskey本身、

  5. java - 在 XML Validator 上设置 ErrorHandler 会导致不正确的验证 - 2

    在使用Java的XMLValidator(我相信它使用ApacheXerces实现)时,我遇到了一些看起来非常奇怪的行为。我正在尝试根据XSD验证某些XML文档,并且我想记录导致文档无效的任何内容。我认为实现自己的ErrorHandler可以让我做到这一点。我很快发现这会导致XML文档被错误地验证(即无效的XML被识别为对我的XSD有效)。我做了一些测试,发现简单地将Validator的ErrorHandler设置为任何值都会导致此行为,如下所示。validator.validate(invalidXmlSource);//XMLcorrectlyidentifiedasINVALID

  6. java - 警告 : validation was turned on but an org. xml.sax.ErrorHandler - 2

    知道为什么会发生此错误以及如何解决它吗?尝试解析/加载配置文件时出现此错误:错误Warning:validationwasturnedonbutanorg.xml.sax.ErrorHandlerwasnotset,whichisprobablynotwhatisdesired.ParserwilluseadefaultErrorHandlertoprintthefirst10errors.Pleasecallthe'setErrorHandler'methodtofixthis.Error:URI=nullLine=3:Documentrootelement"persistence"

  7. json - 如何使用 iOS Swift 访问设备中的 vpn api url? - 2

    我使用swiftyJSON从apiurl消费OData。这里的apiurl与VPN连接。并且apiurl看起来像http://192.xxx.xx.xx:8000/sap/opu/odata/sap/Z_SRV/PRListSetSet?$format=json当我在模拟器中运行时,我可以从odataapiurl获取数据,但是在设备中运行时,没有从odataapiurl接收到数据。由于没有vpn连接到移动设备。我如何以编程方式对我的VPN进行硬编码以在移动设备中接收数据?这是我如何从ODataapiurl获取数据:typealiasServiceResponse=(JSON,Error

  8. xml - 使用 XML 解析 Swift 库时,Playgrounds 崩溃并显示 "unknown error" - 2

    我正在开发一个涉及一些XML解析的自定义框架,使用Kanna框架。每当我尝试将我的框架导入playground时,playground就会崩溃并出现以下错误:Playgroundexecutionfailed:expressionfailedtoparse,unknownerror*thread#1:tid=0x4e9448,0x00000001074bf360com.apple.dt.Xcode.PlaygroundStub-macosx`executePlayground,queue='com.apple.main-thread',stopreason=breakpoint1.1*

  9. windows -/var/www/html/myanants/lib/Cake/Error/ErrorHandler.php 中给出的 ParseError 实例 - 2

    我第一次上传cakephp项目到服务器后,出现了这个fatalerror。FatalErrorError:UncaughtTypeError:Argument1passedtoErrorHandler::handleException()mustbeaninstanceofException,instanceofParseErrorgivenin/var/www/html/myanants/lib/Cake/Error/ErrorHandler.php:116Stacktrace:#0[internalfunction]:ErrorHandler::handleException(Ob

  10. swift - 在 Windows 10 上的 Ubuntu 上的 bash 上安装 swift 4 - 2

    我尝试在Windows10上的Ubuntu上的bash上安装Swift4我的Ubuntu版本:我@DESKTOP:~$lsb_release-a没有可用的LSB模块。经销商ID:Ubuntu描述:Ubuntu16.04.3LTS发布:16.04代号:xenial我做了apt-getupgrade和apt-getupdate我遵循Linux步骤here:安装Swift4最终我得到了错误:我@DESKTOP:~$swift/home/me/swift4/swift-4.0.2-RELEASE-ubuntu16.04/usr/bin/lldb:加载共享库时出错:libpython2.7.so

随机推荐