2013-08-20 3 views
2

я кнопка названаКак я могу сохранить имя UIButton в строке?

как я могу сохранить «Button1» в строке? или я могу его сохранить или нет?

+1

Если вы объясните, почему вы хотите это сделать, мы сможем вам помочь. – Abizern

+0

Проверьте это http://stackoverflow.com/questions/15879357/how-to-get-instance-variable-name, http://stackoverflow.com/questions/6615826/get-property-name-as-a-string – Kalpesh

+0

На самом деле у меня есть десятки кнопок в моем проекте, которые сохраняются по имени персонажа, и мне нужно воспроизвести звук на этих кнопках, поэтому здесь мне нужно имя каждой кнопки, через которую я смогу воспроизвести звук о его имени, надеюсь, что вы получили точку. – Steve

ответ

-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

+0

[sne addTarget: self action: @selector (btnItemListClicked :) forControlEvents: UIControlEventTouchDown]; – Steve

+0

, что бы вы ни хотели, просто напишите этот код в методе действия кнопки. – Kalpesh

+0

его возвращающее значение null – Steve

-1

вы получите название кнопки в строке, но не сохранен выход кнопки в строке сохранения выхода кнопки в ид с помощью этого вы сохраняете кнопку название

NSString *btn = Mybutton.titleLabel.text; 

для сохранения выхода кнопки

Iboutlet Uibutton *myButton; 
    id *myBtn=myButton; 
+0

Это еще не то, о чем идет речь. – Abizern

+0

, но вы также не знаете, что он хочет сказать :-) –

+0

@ waseem shah sir, я очень хорошо знаю, как сохранить текст заголовка в строке, я спросил что-то еще, как я могу сохранить имя переменной в строке – Steve

0

Вы можете сохранить его 'адрес только в памяти: NSString *but1=[NSString stringWithFormat:@"%@",&button1];, но если вам нужно получить уникальный индикатор ваших кнопок, вы можете использовать его' теги: button1.tag Или вы можете создать NSMutableDictionary и добавить кнопки для ключей, что равно их имена.

0

Вы можете создать макрос так:

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

И использовать:

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

Вы увидите

My variable name is button1 
0

Нет, вы не можете сделать это, как UIButton - это объект, и вы объявляете UIButton как button1. Это останется неподвижным, поскольку оно содержит ссылку в памяти.

NSString - это то, что вы можете использовать в любое время, но для объявления Object и varible вы не можете его изменить.