Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
1.2k views
in Technique[技术] by (71.8m points)

swift - Unable to create instance variable and class variable of the same name

The following code does not compile:

class object {
    class var myVar: String! {
        return "from class"
    }

    var myVar: String! {
        return "from instance"
    }
}

Error:

Invalid redeclaration of 'myVar'

Is this not possible with Swift or am I doing it wrong? This is totally legal in Objective-C (as functions rather than variables).

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

Currently, you can't. If you really want to do this, you can file a Bug Report with Apple.

I would advise against doing this. It's really bad practice, simply because having two different variables named the exact same thing, the only difference being how they are accessed, is a terrible code smell. And it's confusing.

So file a radar if you want to, and then change your variable names. I doubt Apple will "fix" this.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

2.1m questions

2.1m answers

60 comments

57.0k users

...