使用self.performSelector的EXC_BAD_ACCESS

大卫

这是一个简单的学术代码而不是真实代码。

我想使用performSelector函数运行打印方法。但是,如果我在操场上运行此代码,则会引发异常:

EXC_BAD_ACCESS(代码= EXC_I386_GPFLT)。

代码:

//: Playground - noun: a place where people can play

import UIKit

@objc(Foo)
class Foo: NSObject {

    func timer() {
        self.performSelector( #selector(Foo.print))
    }

    @objc func print() {
        NSLog("print")
    }
}

let instance = Foo()
instance.timer()     // <-- EXC_BAD_ACCESS (code=EXC_I386_GPFLT)

问题出在哪儿?

OOPer

尝试将您的内容更改Foo.print()为以下形式:

    @objc func print() -> AnyObject? {
        NSLog("print")
        return nil
    }

我相信代码也可以在Playground中运行。

performSelector的返回类型不是Void

-performSelector:

func performSelector(_ aSelector: Selector) -> Unmanaged<AnyObject>!

因此,Playground尝试获取要显示的结果值。实际上哪个都不返回。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用NativeCSS时EXC_BAD_ACCESS

来自分类Dev

使用协议组成的EXC_BAD_ACCESS

来自分类Dev

使用MPMoviePlayerViewController的EXC_BAD_ACCESS

来自分类Dev

在弧中消失的self.delegate:EXC_BAD_ACCESS

来自分类Dev

使用object_setIvar时为EXC_BAD_ACCESS

来自分类Dev

NSNotificationCenter使用SpriteKit导致EXC_BAD_ACCESS错误

来自分类Dev

使用cfnetwork写入输出流时,exc_bad_access

来自分类Dev

使用泛型时为EXC_BAD_ACCESS

来自分类Dev

使用scrollViewDidScroll时出错EXC_BAD_ACCESS

来自分类Dev

使用MDQueryRef调用时CFR释放EXC_BAD_ACCESS

来自分类Dev

在代码中添加UINavigationController时使用EXC_BAD_ACCESS

来自分类Dev

使用数组C ++时的“ EXC_BAD_ACCESS”

来自分类Dev

self.fetchedResultsController抛出EXC_BAD_ACCESS,而_fetchedResultsController工作正常

来自分类Dev

在Swift中使用泛型,协议和继承创建对象时使用EXC_BAD_ACCESS

来自分类Dev

在Swift中使用泛型,协议和继承创建对象时使用EXC_BAD_ACCESS

来自分类Dev

尝试使用object_getIvar检索值时为EXC_BAD_ACCESS

来自分类Dev

CGContextDrawPDFPage在OS X 10.8上使用EXC_BAD_ACCESS随机崩溃

来自分类Dev

为什么在这个简单的NSOutlineView数据源中使用EXC_BAD_ACCESS?

来自分类Dev

NSInvocation返回值,但使用EXC_BAD_ACCESS会使应用程序崩溃

来自分类Dev

EXC_BAD_ACCESS使用UIDocumentInteractionController将图像发送到Instagram

来自分类Dev

使用AFNetworking 2.0执行POST时为EXC_BAD_ACCESS

来自分类Dev

在闭包中使用数组时的Swift EXC_BAD_ACCESS

来自分类Dev

使用NSInvocation时,arm64上的EXC_BAD_ACCESS崩溃

来自分类Dev

尝试在Swift中初始化UIActionSheet时使用EXC_BAD_ACCESS

来自分类Dev

在非ARC环境中,如何使用NSMutableDictionary避免EXC_BAD_ACCESS?

来自分类Dev

使用数组时无法找出“线程1:EXC_BAD_ACCESS”错误

来自分类Dev

应用程序在CGContext.drawPDFPage上使用EXC_BAD_ACCESS崩溃

来自分类Dev

为什么对字符串使用%1 $ s时得到EXC_BAD_ACCESS(格式:)

来自分类Dev

在Cordova插件中使用相同的NSFileHandle对象时,EXC_BAD_ACCESS

Related 相关文章

  1. 1

    使用NativeCSS时EXC_BAD_ACCESS

  2. 2

    使用协议组成的EXC_BAD_ACCESS

  3. 3

    使用MPMoviePlayerViewController的EXC_BAD_ACCESS

  4. 4

    在弧中消失的self.delegate:EXC_BAD_ACCESS

  5. 5

    使用object_setIvar时为EXC_BAD_ACCESS

  6. 6

    NSNotificationCenter使用SpriteKit导致EXC_BAD_ACCESS错误

  7. 7

    使用cfnetwork写入输出流时,exc_bad_access

  8. 8

    使用泛型时为EXC_BAD_ACCESS

  9. 9

    使用scrollViewDidScroll时出错EXC_BAD_ACCESS

  10. 10

    使用MDQueryRef调用时CFR释放EXC_BAD_ACCESS

  11. 11

    在代码中添加UINavigationController时使用EXC_BAD_ACCESS

  12. 12

    使用数组C ++时的“ EXC_BAD_ACCESS”

  13. 13

    self.fetchedResultsController抛出EXC_BAD_ACCESS,而_fetchedResultsController工作正常

  14. 14

    在Swift中使用泛型,协议和继承创建对象时使用EXC_BAD_ACCESS

  15. 15

    在Swift中使用泛型,协议和继承创建对象时使用EXC_BAD_ACCESS

  16. 16

    尝试使用object_getIvar检索值时为EXC_BAD_ACCESS

  17. 17

    CGContextDrawPDFPage在OS X 10.8上使用EXC_BAD_ACCESS随机崩溃

  18. 18

    为什么在这个简单的NSOutlineView数据源中使用EXC_BAD_ACCESS?

  19. 19

    NSInvocation返回值,但使用EXC_BAD_ACCESS会使应用程序崩溃

  20. 20

    EXC_BAD_ACCESS使用UIDocumentInteractionController将图像发送到Instagram

  21. 21

    使用AFNetworking 2.0执行POST时为EXC_BAD_ACCESS

  22. 22

    在闭包中使用数组时的Swift EXC_BAD_ACCESS

  23. 23

    使用NSInvocation时,arm64上的EXC_BAD_ACCESS崩溃

  24. 24

    尝试在Swift中初始化UIActionSheet时使用EXC_BAD_ACCESS

  25. 25

    在非ARC环境中,如何使用NSMutableDictionary避免EXC_BAD_ACCESS?

  26. 26

    使用数组时无法找出“线程1:EXC_BAD_ACCESS”错误

  27. 27

    应用程序在CGContext.drawPDFPage上使用EXC_BAD_ACCESS崩溃

  28. 28

    为什么对字符串使用%1 $ s时得到EXC_BAD_ACCESS(格式:)

  29. 29

    在Cordova插件中使用相同的NSFileHandle对象时,EXC_BAD_ACCESS

热门标签

归档