Not a big fan of this kind of hacks, but having the option to add a property to a category can be extremely handful sometimes. This is probably one of the cleanest ways to do it:

@interface UIView (MyCategory)

@property (nonatomic, copy) NSString *myProperty;

@end
#import <objc/runtime.h> // additional required import

@implementation UIView (MyCategory)

- (void)setMyProperty:(NSString *)myProperty
{
    objc_setAssociatedObject(self, @selector(myProperty), myProperty, OBJC_ASSOCIATION_COPY_NONATOMIC);
}

- (NSString *)myProperty
{
    return objc_getAssociatedObject(self, @selector(myProperty));
}

@end

The second argument for both methods requires a void *. This is usually done by using the memory address of a static const char or similar, but using @selector(myProperty) removes the need for that extra constant.