2

我有一个名为的按钮

UIButton *button1;

如何将“button1”保存在字符串中?或者我能不能保存它?

4

5 回答 5

0

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

于 2013-08-20T07:18:12.097 回答
0

您可以像这样创建宏:

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

并使用它:

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

你会看到的

My variable name is button1
于 2013-08-20T07:27:19.840 回答
0

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

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

于 2013-08-20T07:31:16.747 回答
-1

您在字符串中获得按钮标题,但未在字符串中保存按钮插座您使用此按钮在 id 中保存按钮插座您保存按钮标题

  NSString *btn = Mybutton.titleLabel.text;

用于保存按钮插座

   Iboutlet Uibutton *myButton;
    id *myBtn=myButton;
于 2013-08-20T07:16:01.890 回答
-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);
}

输出是:

姓名印刷说明:

btn电话会议

检查此示例演示

按钮演示

于 2013-08-20T07:52:52.157 回答