in iOS development, category does not add attributes by default, but the runtime is easy to handle.
1. Add classification NSObject (Extension) to NSObject,
1> added in Nsobject+extension.h
@property (nonatomic, copy) NSString *value;
2> in the nsobject+extension.m.
#import "Nsobject+extension.h"
#import <objc/runtime.h>
@implementation NSObject (Extension)
static char Valuekey; Key of the associated property value
-(void) SetValue: (NSString *) value
{
Associate a value with an object
To store a value in an object
Objc_setassociatedobject (self, &valuekey, value, objc_association_copy_nonatomic);
}
-(NSString *) value
{
Use Valuekey to take value values
Return Objc_getassociatedobject (self, &valuekey);
}
@end
2. Testing in Viewcontroller
-(void) Viewdidload {
[Super Viewdidload];
NSString *str = @ "Jack";
Str.value = @ "abc";
Self.value = @ "hahaha";
NSLog (@ "%@", Str.name, Self.name);
}
Operation Result:
2015-06-10 17:07:27.488 run-time applications - Category Add Property [1698:63864] ABC hahaha #import <objc/runtime.h>
Beginner runtime--Realization of the article (category add attribute)