Objective-C categories: Can I add a property for a method not in my category?

后端 未结 3 1655
暖寄归人
暖寄归人 2020-12-15 16:23

I want to use a category to make a method on the original class available as a property as well.

Class A:

@interface ClassA
- (NSString*)foo;
@end


        
相关标签:
3条回答
  • 2020-12-15 16:59

    I wrote two articles on this, though the concept is slightly different from the question you're asking.

    1. Add properties to categories without touching the base class: http://compileyouidontevenknowyou.blogspot.com/2012/06/adding-properties-to-class-you-dont.html
    2. Access iVars from categories: http://compileyouidontevenknowyou.blogspot.com/2012/06/if-you-want-to-keep-everything-in-your.html

    This is a LOT better than method swizzling, at least: way safer.

    0 讨论(0)
  • 2020-12-15 17:03

    If something's declared in your category's interface, its definition belongs in your category's implementation.

    0 讨论(0)
  • 2020-12-15 17:11

    Here's the warning you're getting:

    warning: property ‘foo’ requires method '-foo' to be defined - use @synthesize, @dynamic or provide a method implementation

    To suppress this warning, have this in your implementation:

    @dynamic foo;

    0 讨论(0)
提交回复
热议问题