AppCode can't see members of inherited properties (Swift)

Answered

When I inherit from UIKit and attempt to access an inherited property, autocomplete sees the inherited property and its type:

 

However, when you action the autocomplete, it doesn't see any of the fields, properties, or members of that property:

I really like JetBrains products, and I'd like to continue using them. But this is a pretty serious oversight / bug. Does anyone know what's up here? Same issue for other properties as well, such as UICollectionView, etc.

5 comments
Official comment

The issue with 'tableView' property is caused by OC-11986. Please vote & watch the ticket for progress. As for other properties (UICollectionView was mentioned) - please share some examples, we'll check what's going on there.

Im seeing the same thing as well. Would really like this to be fixed or resolved so a I can finally ditch XCode

0

The strange thing is that everything seems to be connected. The property itself is properly detected as well as its type. When you follow the source of the class (Cmd + B), the IDE can see the property and its type. When you follow the source for the type of the property itself, all of its constituent members are there. They just aren't recognized in the autocomplete. Very strange.

0

Hi Tatiana,

Thanks for checking in. After further investigation, you appear to be correct. I recreated with UICollectionViewController:

Before overriding any collectionView... methods, everything is good -- YAY!

After overriding any of the collection view methods...

Trouble trouble!

So they seem to share the same root problem. Any class that shared a method root name with a variable confuses autocomplete. I'll keep an eye on the issue tracker. Please try to fix this asap, this is an extremely common situation in iOS programming and I can't see myself using AppCode much until it is fixed. Which is a shame because everything else is awesome! :)

Thanks! 

0

Dustin,

The issue is high in our priority list, we just couldn't get to it because of numerous changes in Swift 3.x and other major tasks (performance improvements, etc.). Hopefully, we'll have more luck with it in upcoming AppCode releases (2017.2 / 2017.3). Appreciate you took time to bring this up.

0

Please sign in to leave a comment.