2

重複の可能性:
Xcode 4.4 の Apple LLVM 4.0 新機能 (リテラル)

この記事を読みました。

素晴らしいスキルを見つけました。@operatorについてです。

リテラル構文は、NSString リテラルと同じ「@」演算子を使用して、NSArray、NSDictionary、および NSNumber オブジェクトでサポートされています。

しかし、サンプルコードが見つかりません。

@operator を使用して NSNumber、NSArray、NSDictionary についてもう少し説明していただけますか?

ありがとう。

4

3 に答える 3

1

Objective-C Literalsに関する LLVM のマニュアル ページで、新しい構文について確認できます。

于 2012-07-26T00:37:16.230 に答える
1

Mike ash は、こ​​のトピックに関する非常に優れた記事を書きました。

基本だけでなく、いくつかの非常に優れた実装の詳細についても説明します。他に質問がある場合は、下にコメントを残してください。

于 2012-07-26T00:37:24.427 に答える
0

これまでに見た中で最も優れたドキュメントはllvm man pageにあります。

  // integral literals.
  NSNumber *fortyTwo = @42;             // equivalent to [NSNumber numberWithInt:42]
  NSNumber *fortyTwoUnsigned = @42U;    // equivalent to [NSNumber numberWithUnsignedInt:42U]
  NSNumber *fortyTwoLong = @42L;        // equivalent to [NSNumber numberWithLong:42L]
  NSNumber *fortyTwoLongLong = @42LL;   // equivalent to [NSNumber numberWithLongLong:42LL]

  // floating point literals.
  NSNumber *piFloat = @3.141592654F;    // equivalent to [NSNumber numberWithFloat:3.141592654F]
  NSNumber *piDouble = @3.1415926535;   // equivalent to [NSNumber numberWithDouble:3.1415926535]

  // BOOL literals.
  NSNumber *yesNumber = @YES;           // equivalent to [NSNumber numberWithBool:YES]
  NSNumber *noNumber = @NO;             // equivalent to [NSNumber numberWithBool:NO]

  // This creates an NSArray with 3 elements. The comma-separated sub-expressions of an array
  // literal can be any Objective-C object pointer typed expression.
  NSArray *array = @[ @"Hello", NSApp, [NSNumber numberWithInt:42] ];

  // Immutable dictionary expression:
  NSDictionary *dictionary = @{
    @"name" : NSUserName(),
    @"date" : [NSDate date],
    @"processInfo" : [NSProcessInfo processInfo]
  };
于 2012-07-27T17:07:12.773 に答える