16

私はObjective-Cランタイムタイプエンコーディング文字列に関するAppleの記事を読ん でおり、一部のメソッドのタイプ文字列には数値が含まれています。

数字はv12@0:4@8どういう意味ですか?

4

1 に答える 1

25

これは、次のようなセッターメソッドのエンコーディングのように見えます。

- (void) setSomething:(id) anObject

それを分解するには:

  • vボイドリターンタイプを意味します
  • 12引数フレームのサイズ(12バイト)を意味します
  • @0引数フレームのバイトオフセット0にObjective-Cオブジェクトタイプがあることを意味します(これはself各Objective-Cメソッドの暗黙的なオブジェクトです)
  • :4これは、バイトオフセット4にセレクターがあることを意味します(これは、_cmdメソッドを呼び出すために使用されたセレクターである、すべてのメソッドに暗黙的に含まれています)。
  • @8バイトオフセット8に別のObjective-Cオブジェクトタイプがあることを意味します。
于 2012-07-15T13:06:24.270 に答える