gpt4 book ai didi

objective-c - 将 NSString 类别扩展添加到 UIButton

转载 作者:行者123 更新时间:2023-11-29 04:30:59 25 4
gpt4 key购买 nike

我想用 NSString 扩展 UIButton 来获取一些元信息。我怎样才能做到这一点?

我从这个开始:

@interface UIButton (neoUtils)

+ (UIButton *)neoName:(NSString *)buttonName;

@end

和.m

#import "UIButton+NAME.h"

@implementation UIButton (neoUtils)

+ (UIButton *)neoName:(NSString *)buttonName {
UIButton *button = [UIButton neoName:buttonName];
NSLog(@"%@",button);
return button;
}

@end

这是正确的道路吗?如果是这样 - 我将如何使用它?

最佳答案

我假设

@interface UIButton (neoUtils)

在 UIButton+NAME.h 中声明。

首先,看起来只要调用该方法,程序就会进入递归循环:

+ (UIButton *)neoName:(NSString *)buttonName {
UIButton *button = [UIButton neoName:buttonName]; // <- this one
NSLog(@"%@",button);
return button;
}

因为它会自动调用方法本身。

无论如何,考虑到扩展对象必须有一个状态(元信息的 NSString 必须被“记住”),我不相信可以用一个类别来满足要求,这只是扩展了对象的行为类(class)。那么我猜你的解决方案没有从正确的步骤开始。

相反,我只需创建一个类似的类

@interface XYMetaInfoButton : UIButton

@proerty (nonatomic, [strong|retain]) NSString *name;

@end

然后您可以在项目中全局导入以获得带有元信息的新 UIButton。但这只是一种可能性,也许有人有更好的解决方案。

关于objective-c - 将 NSString 类别扩展添加到 UIButton,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11731052/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com