new Objctive-C literal syntax

3,968 views

Published on

2012年3月にclangのtrunkに導入された、NSArrayやNSDictionaryなどへの新しい構文・リテラルについて調べてみた。

追加説明の記事
http://d.hatena.ne.jp/kimuraw/20120317/p1


Cocoa勉強会 #51 2012-03-17

Published in: Technology

new Objctive-C literal syntax

  1. 1. 新しいリテラルてば どーすか? Cocoa勉強会�#51�/�2012-03-17�/�⽊村渡Powered�by�Rabbit�1.0.6�and�COZMIXNG
  2. 2. 今⽇のお題Objective-Cに新しく導⼊されるかもなリテラル表記について、みんなの感想を聞きたい!
  3. 3. 注今⽇お話することは、3/16時点のclang�trunk�r152917�を元にしています。
  4. 4. clang�r152137Add�clang�support�for�new�Objective-C�literal�syntax�for�NSDictionary,�NSArray,NSNumber,�and�boolean�literals.�...http://llvm.org/viewvc/llvm-project?view=rev&revision=152137ついこないだの2012-03-06
  5. 5. 実際どういう書きかた?test/SemaObjC/をみたり、test/ARCMT/の.mと.m.resultを⽐べてみるとか。
  6. 6. FileMergeしてみるobjcmt-subscripting-literals.m
  7. 7. FileMergeしてみるobjcmt-numeric-literals.m
  8. 8. 例�-�NSArray@[ obj1, obj2 ]// [NSArray// arrayWithObjects:obj1, obj2, nil]ary[1]// [ary objectAtIndex:1]
  9. 9. 例�-�NSDictionary@[ key1 : val1, key2 : val2 ]// [NSDictionary// dictinaryWithObjectsAndKeys:// val1, key1, val2, key2, nil]keyとvalueの順が、、、
  10. 10. 例�-�NSDictionary dict[key] // [dict objectForKey:key] dict[key] = val // [dict setObject:val forKey:key]
  11. 11. 例�-�NSNumber @123 // [NSNumber numberWithInt:123] @-123 // [NSNumber numberWithInt:-123]
  12. 12. 例�-�NSNumber @123.0 // [NSNumber numberWithFloat:123.0] @YES // [NSNumber numberWithBool:YES]@YESはちょっとキモチワルイかも
  13. 13. ちょっと疑問 ary[1]; dict[key];どうやって区別してる? インデックスが数値�or�id? レシーバのクラス?
  14. 14. ちょっと疑問 ary[1]; dict[key];どうやって区別してる? インデックスが数値�or�id?�← レシーバのクラス?test/SemaObjC/�いじって試してみた
  15. 15. なんとNSArrayやNSDictionaryでなくても objectAtIndexedSubscript: (NSInteger)index objectForKeyedSubscript:(id)keyといったメソッドがあればgetter/setter表記が使える!
  16. 16. 感想RubyとかPythonやってる⼈的にはなちゅらるな感じ
  17. 17. 感想コンパイラ⼿持ちにしたらもう、やりたいほうだいっすね。まあでも正常な進化だとは思うのですよ。
  18. 18. 感想Cocoaはオブジェクトと非オブジェクトが共存してるけどそういうとこのややこしさがまたクローズアップされるかも。NSNumberとか。
  19. 19. ということで イイ!�or�これはないわ… こういう機能もほしいなどなど聞かせてください。
  20. 20. おまけ
  21. 21. 試してみたい!って⼈はClang�-�Getting�Startedhttp://clang.llvm.org/get̲started.htmlmake�30分くらい�@�MBP�2009
  22. 22. 終Powered�by�Rabbit�1.0.6�and�COZMIXNG

×