我有一个名为的按钮
UIButton *button1;
如何将“button1”保存在字符串中?或者我能不能保存它?
您可以仅将其'地址保存在内存中:NSString *but1=[NSString stringWithFormat:@"%@",&button1];
,但如果您需要获得按钮的唯一指示符,您可以使用其'标签:button1.tag
或者您可以创建 NSMutableDictionary 并为键添加按钮,这等于它们的名称。
您可以像这样创建宏:
#define getVariableName(var) [NSString stringWithFormat:@"%s", #var]
并使用它:
NSLOG(@"My variable name is %@", variableName(self.button1));
你会看到的
My variable name is button1
不,您不能这样做,因为 UIButton 是一个对象,并且您将 UIButton 声明为 button1。这将保持静态,因为它将引用保存在内存中。
NSString 是您可以随时更改的东西,但对于 Object 和 varible 声明,您无法更改它。
您在字符串中获得按钮标题,但未在字符串中保存按钮插座您使用此按钮在 id 中保存按钮插座您保存按钮标题
NSString *btn = Mybutton.titleLabel.text;
用于保存按钮插座
Iboutlet Uibutton *myButton;
id *myBtn=myButton;
检查这个
进口
#import "objc/runtime.h"
-(IBAction)btnItemListClicked:(id)sender
{
UIButton *btn=sender;
NSString *name = nil;
uint32_t ivarCount;
Ivar *ivars = class_copyIvarList([self class], &ivarCount);
if(ivars)
{
for(uint32_t i=0; i<ivarCount; i++)
{
Ivar ivar = ivars[i];
id pointer = object_getIvar(self, ivar);
if(pointer == sender)
{
name = [NSString stringWithUTF8String:ivar_getName(ivar)];
break;
}
}
free(ivars);
}
NSLog(@"%@", name);
}
输出是:
姓名印刷说明:
btn电话会议
检查此示例演示