Protocol oriented programming and introduction of additional properties
<p>I started using POP couple months ago and I really like the premise. Despite all that it allows us to do I feel that inability to introduce new properties really cripples it. I find that in real world situations I often need to introduce one or more property that the extension needs to do what it is intended to do. Most recent example is this:</p>

<p>I have extension to UIView that renders special kind of border. I do this by creating new CALayer and adding it as sublayer to view. Everything worked fine until I noticed that when view's bounds change, I am stuck with old border. To remedy this, I wanted to store the border layer into property and when layout changed I would remove old border layer and create new one. But since protocols can't add properties directly, I had to use subclass.</p>

<p>I am not really interested how to handle situation above as I omitted some details that might render your improvements unusable. I would like to know if this is something we have to live with and just revert to subclasses or I am missing something and was can somehow overcome it.</p>

<p>I know that protocols can define properties that classes implementing it need to define as well, but this is fairly limiting too. In example above, I wanted to extend functionality of UIView, not some subclass of UIView, so that it can be used in any view</p>