я кнопка названаКак я могу сохранить имя UIButton в строке?
как я могу сохранить «Button1» в строке? или я могу его сохранить или нет?
я кнопка названаКак я могу сохранить имя UIButton в строке?
как я могу сохранить «Button1» в строке? или я могу его сохранить или нет?
Проверить это
импорт
#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
Проверить этот пример демо
вы получите название кнопки в строке, но не сохранен выход кнопки в строке сохранения выхода кнопки в ид с помощью этого вы сохраняете кнопку название
NSString *btn = Mybutton.titleLabel.text;
для сохранения выхода кнопки
Iboutlet Uibutton *myButton;
id *myBtn=myButton;
Вы можете сохранить его 'адрес только в памяти: 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 вы не можете его изменить.
Если вы объясните, почему вы хотите это сделать, мы сможем вам помочь. – Abizern
Проверьте это http://stackoverflow.com/questions/15879357/how-to-get-instance-variable-name, http://stackoverflow.com/questions/6615826/get-property-name-as-a-string – Kalpesh
На самом деле у меня есть десятки кнопок в моем проекте, которые сохраняются по имени персонажа, и мне нужно воспроизвести звук на этих кнопках, поэтому здесь мне нужно имя каждой кнопки, через которую я смогу воспроизвести звук о его имени, надеюсь, что вы получили точку. – Steve