如何在字符串中保存UIButton的名称?

时间:2013-08-20 07:11:26

标签: ios string uibutton

我有一个名为

的按钮
UIButton *button1;

如何在字符串中保存'button1'?或者我能否保存?

5 个答案:

答案 0 :(得分:0)

您可以将其地址仅保存在内存中NSString *but1=[NSString stringWithFormat:@"%@",&button1];,但如果您需要获取按钮的唯一指示符,则可以使用其标记:button1.tag 或者您可以创建NSMutableDictionary并添加键的按钮,这些按钮等于它们的名称。

答案 1 :(得分:0)

你可以像这样创建一个宏:

#define getVariableName(var) [NSString stringWithFormat:@"%s", #var]

并使用它:

NSLOG(@"My variable name is %@", variableName(self.button1));

你会看到

My variable name is button1

答案 2 :(得分:0)

不,你不能这样做,因为UIButton是一个对象,你将UIButton声明为button1。这将保持静态,因为它在内存中保存引用。

NSString是你可以随时变形的东西,但是对于Object和varible声明,你无法改变它。

答案 3 :(得分:-1)

你在字符串中获得了按钮标题但没有在字符串中保存按钮插座你使用这个保存按钮标题保存id中的按钮插座

  NSString *btn = Mybutton.titleLabel.text;

用于保存按钮插座

   Iboutlet Uibutton *myButton;
    id *myBtn=myButton;

答案 4 :(得分:-2)

检查

进口

#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);
}

输出是:

打印名称说明:

btnconferenceCall

查看此示例演示

ButtonDemo