Skip to content

Files

Latest commit

 

History

History
180 lines (115 loc) · 2.1 KB

redundant_objc_attribute.md

File metadata and controls

180 lines (115 loc) · 2.1 KB

Pattern: Redundant @objc attribute

Issue: -

Description

Objective-C attribute @objc is redundant in declaration.

Examples of correct code:

@objc private var foo: String? {}


@IBInspectable private var foo: String? {}


@objc private func foo(_ sender: Any) {}


@IBAction private func foo(_ sender: Any) {}


@GKInspectable private var foo: String! {}


private @GKInspectable var foo: String! {}


@NSManaged var foo: String!


@objc @NSCopying var foo: String!


@objcMembers
class Foo {
  var bar: Any?
  @objc
  class Bar {
    @objc
    var foo: Any?
  }
}


@objc
extension Foo {
  var bar: Int {
    return 0
  }
}


extension Foo {
  @objc
  var bar: Int { return 0 }
}


@objc @IBDesignable
extension Foo {
  var bar: Int { return 0 }
}


@IBDesignable
extension Foo {
  @objc
  var bar: Int { return 0 }
  var fooBar: Int { return 1 }
}


@objcMembers
class Foo: NSObject {
  @objc
  private var bar: Int {
    return 0
  }
}


@objcMembers
class Foo {
    class Bar: NSObject {
        @objc var foo: Any
    }
}


@objcMembers
class Foo {
    @objc class Bar {}
}

Examples of incorrect code:

@objc @IBInspectable private var foo: String? {}


@IBInspectable @objc privatevar foo: String? {}


@objc @IBAction privatefunc foo(_ sender: Any) {}


@IBAction @objc privatefunc foo(_ sender: Any) {}


@objc @GKInspectable privatevar foo: String! {}


@GKInspectable @objc privatevar foo: String! {}


@objc @NSManaged privatevar foo: String!


@NSManaged @objc privatevar foo: String!


@objc @IBDesignableclass Foo {}


@objcMembers
class Foo {
  @objcvar bar: Any?
}


@objcMembers
class Foo {
  @objcvar bar: Any?
  @objcvar foo: Any?
  @objc
  class Bar {
    @objc
    var foo: Any?
  }
}


@objc
extension Foo {
  @objcvar bar: Int {
    return 0
  }
}


@objc @IBDesignable
extension Foo {
  @objcvar bar: Int {
    return 0
  }
}


@objcMembers
class Foo {
    @objcMembers
    class Bar: NSObject {
        @objcvar foo: Any
    }
}


@objc
extension Foo {
    @objc
    privatevar bar: Int {
        return 0
    }
}