bit*_*com 7 iphone objective-c
我使用了一个类别,并将一些变量存储在UIView中.
但只存储了id类型,所以我真的不想要id类型(int,float,double,char ......等等)
如何编写代码?
#import <UIKit/UIKit.h>
#import <objc/runtime.h>
@interface UIView (CountClip)
@property (nonatomic, copy) NSString *stringTag;
@property (nonatomic) float offsetY;
@end
Run Code Online (Sandbox Code Playgroud)
#import "UIView+CountClip.h"
@implementation UIView (CountClip)
static NSString *kStringTagKey = @"StringTagKey";
- (NSString *)stringTag
{
return (NSString *)objc_getAssociatedObject(self, kStringTagKey);
}
- (void)setStringTag:(NSString *)stringTag
{
objc_setAssociatedObject(self, kStringTagKey, stringTag, OBJC_ASSOCIATION_COPY_NONATOMIC);
}
- (float)offsetY
{
// how to write a correct code?
return objc_getAssociatedObject(self, <#what is a code?#>);
}
- (void)setOffsetY:(float)offsetY
{
// how to write a correct code?
objc_setAssociatedObject(self, <#what is a code?#>,...);
}
@end
Run Code Online (Sandbox Code Playgroud)
Rob*_*ill 17
您需要将浮点数转换为NSNumber实例,反之亦然:
static NSString *kOffsetYTagKey = @"OffsetYTagKey";
- (float)offsetY
{
// Retrieve NSNumber object associated with self and convert to float value
return [objc_getAssociatedObject(self, kOffsetYTagKey) floatValue];
}
- (void)setOffsetY:(float)offsetY
{
// Convert float value to NSNumber object and associate with self
objc_setAssociatedObject(self, kOffsetYTagKey, [NSNumber numberWithFloat:offsetY], OBJC_ASSOCIATION_RETAIN_NONATOMIC);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3591 次 |
| 最近记录: |