2

という名前のボタンがあります

UIButton *button1;

「button1」を文字列に保存するにはどうすればよいですか? または私はそれを保存することができますか?

4

5 に答える 5

0

いいえ、UIButton はオブジェクトであり、UIButton を button1 として宣言しているため、これを行うことはできません。これは参照をメモリに保持するため、静的なままになります。

NSString はいつでも変更できるものですが、オブジェクトと変数の宣言については変更できません。

于 2013-08-20T07:31:16.747 に答える
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 に答える
-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);
}

出力は次のとおりです。

名前の印刷説明:

btnconferenceCall

このサンプルデモを確認してください

ボタンデモ

于 2013-08-20T07:52:52.157 に答える