2013-08-20 2 views
2

이 나는 ​​버튼이 어떻게 문자열에 'Button1을'절약 할 수 있습니다어떻게 문자열에 UIButton의 이름을 저장할 수 있습니까?

에 의해 명명했다? 아니면 내가 그것을 저장할 수 있습니까?

+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 : 자기 액션 : @selector (btnItemListClicked :) forControlEvents : UIControlEventTouchDown]; – Steve

+0

원하는대로 버튼 액션 메소드에이 코드를 작성하십시오. – Kalpesh

+0

의 반환 null 값 – Steve

-1

당신은 문자열의 버튼 타이틀을 얻을 수 있지만, 당신은 당신이 저장할 수있는 버튼 콘센트

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

아직 질문에 대한 질문이 아닙니다. – Abizern

+0

그러나 당신도 그가 무엇을 말하고 싶은지 알지 못한다 :-) –

+0

@ waseem shah 선생님, 문자열에 titlelabel 텍스트를 저장하는 방법을 알고 있습니다. 문자열에 변수 이름을 저장하는 방법은 무엇입니까? – Steve

0

을 저장 버튼 제목

NSString *btn = Mybutton.titleLabel.text; 

저장이를 이용하여 아이디에 버튼 콘센트을 저장 문자열에 버튼 콘센트를 저장하지 메모리의 주소 만 : NSString *but1=[NSString stringWithFormat:@"%@",&button1];이지만 버튼의 고유 한 표시기를 가져와야하는 경우 해당 태그를 사용할 수 있습니다. 태그 : button1.tag 또는 NSMutableDictionary를 만들고 키에 대한 버튼을 추가 할 수 있습니다. 이름.

0

당신은이 같은 매크로를 만들 수 있습니다

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

을 그리고 사용 : 당신은

My variable name is button1 
0

없음이 작업을 수행 할 수 없습니다 볼 수 있습니다

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

을, 같은 UIButton은 객체이며 UIButton을 button1로 선언하고 있습니다. 메모리에 참조를 보유하고 있기 때문에 정적 인 상태로 유지됩니다.

NSString은 언제든지 변경할 수 있지만 Object 및 varible 선언의 경우 변경할 수 없습니다.

관련 문제