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

new Objctive-C literal syntax

3,599

Published on

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

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


Cocoa勉強会 #51 2012-03-17

Published in: Technology
1 Comment
3 Likes
Statistics
Notes
No Downloads
Views
Total Views
3,599
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
10
Comments
1
Likes
3
Embeds 0
No embeds

No notes for slide

Transcript of "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
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×