0

文字列プロパティを定義するマクロを作成しました

#define STRING_PREF(NAME) \
 @property (nonatomic, strong, getter=NAME, setter=set_##NAME##:) NSString * NAME;

このように使用してみます:

STRING_PREF(username)

しかし、次のエラーで終わります:

error: pasting formed 'set_username:', an invalid preprocessing token
STRING_PREF(username)
^
foo.h:16:62: note: expanded from macro 'STRING_PREF'
        @property (nonatomic, strong, getter=NAME, setter=set_##NAME##:)        NSString * NAME;
                                                                    ^
1 error generated.

プリプロセッサでセレクタ名を生成することはできませんか?

4

1 に答える 1

0

:次のように、を貼り付けないでください。

#define STRING_PREF(NAME) @property (nonatomic, copy, getter=NAME, setter=set_##NAME:) NSString *NAME;

copyまた、文字列はではなくプロパティとして定義する必要があることに注意してくださいstrong

于 2012-04-24T18:36:33.733 に答える