1
我正在尋找添加一個.owner和.number方法到UIButton類。我需要爲每個單獨的數字分配一個(int)數字,以便我可以使用數字來分隔這些按鈕。將方法添加到默認類
e.g所以我可以寫buttonName.number = 1
和buttonName.owner = @"Player1";
我怎麼能去這樣做?
我正在尋找添加一個.owner和.number方法到UIButton類。我需要爲每個單獨的數字分配一個(int)數字,以便我可以使用數字來分隔這些按鈕。將方法添加到默認類
e.g所以我可以寫buttonName.number = 1
和buttonName.owner = @"Player1";
我怎麼能去這樣做?
有幾種方法可以做到這一點。更容易的是繼承UIButton類並根據需要添加可以實現的屬性;
@interface MyButton:UIButton
@property(nonatomic, assign) int number;
@property(nonatomic, strong) NSString *owner
@end
而另一種方法是使用運行時將屬性添加到類中。爲此,您需要爲該類創建一個類別,然後將該屬性添加到該接口中,然後使用運行時向其添加屬性;
@interface UIButton(MyCategory)
@property(nonatomic, assign) float number;
@property(nonatomic, strong) NSString *owner;
@end
@implementation UIButton(MYCategory)
NSString *const numberKey = @"kNumberKey";
NSString *const ownerKey = @"kOwnerKey";
- (float)number{
return [objc_getAssociatedObject(self, &numberKey) floatValue];
}
-(void)setNumber:(float)num{
objc_setAssociatedObject(self, &numberKey,[NSNumber numberWithFloat:num], OBJC_ASSOCIATION_RETAIN_NONATOMIC);
}
-(NSString*)owner{
return objc_getAssociatedObject(self, &ownerKey);
}
-(void)setOwner:(NSString *)own{
objc_setAssociatedObject(self, &ownerKey, own, OBJC_ASSOCIATION_COPY);
}
@end
有了這個,你將能夠將自定義屬性添加到UIButton類本身。
我做了一個名爲UIButton的類別和它的一個UIButton類別。我把接口和實現放在那裏,並使用'未聲明的標識符號'和'所有者' – PappaSmalls
確保你已經爲此做了正確的導入。使用#import。對不起,我錯過了一些東西。查看我的編輯。 –
Sandeep
@ inase-36已經有了,仍然有錯誤。 – PappaSmalls