PyObjCでCocoa探索 NSString編
投稿日:2007/12/21 04:28:03
過去の記事は移行時の問題により、画像が表示されなかったり、レイアウトが崩れたりしている可能性があります。
Tweet
昨日の続きでCocoaセミナーの移植しようと思ったんだけど、
明日(といってももう今日か)デザイン案提出の仕事があったんで遅くなってしまいました。
明日は忘年会だしなー。やるのはあさってかなー。
Twitter Updateに負けないようにブログをかかねばというのが課せられた義務なので、
一人勉強会シリーズとして、IPythonを使って、PyObjCでCocoaフレームワークのクラス探索していきます。
内容的に自信のないことばっか書くと思うので突っ込み頂けるとうれしいです。
まずはNSString。Cocoaにおける文字列型です。
from Foundation import NSStringで読み込めますが、
実は、from Cocoa import *って書くとCocoaに必要なもの全部読み込んでくれます。
[Python]
>>> NSString
<objective-c class NSString at 0xa01f7c4c>
>>> NSString.alloc() #クラスをインスタンス化
<NSPlaceholderString objective-c instance 0x3b2950>
#NSStringじゃないクラスができてる。
#これはNSStringがクラスクラスタなので、実際の作業は小人クラスたちが行っているってことらしいです。
>>> str = NSString.alloc().initWithString_('Hello')
#イニシャライザ(コンストラクタ的な)はallocするついでに呼べます。
>>> str
u'Hello' #ユニコード文字列ができてます。
>>> str.__class__ #クラスの確認
<type 'objc.pyobjc_unicode'> #NSString型じゃないっぽい?
>>> str.isEqualTo_('Hello') #試しにNSStringのメソッド呼んでみる
True #あ、ちゃんと呼べた。(あれー昨日呼べなかった気がしたけどw)
>>> str.length()
5 #なんか問題なさそう。
>>> str[0:2] #Python的にスライスしてみる
u'He' #いけた。
>>> str.upper() #Pythonの文字列型のメソッドを呼ぶ
u'HELLO' #いける。万能オブジェクトじゃん。
>>> str = NSString.stringWithString_('Hello.jpg')
#AutoreleasePoolに入れてインスタンス作成だけど、Pythonではどうなるかわかんない。
>>> str.pathExtension() #NSStringの拡張子を取り出すメソッド
u'jpg' #ちなみにこれも<type 'objc.pyobjc_unicode'>
[/Python]
よく調べてみるとNSString型はPythonの文字列型が持ってない便利なメソッドを持ってたりするんで、
積極的に使う理由はあるかもですね。
次回は順当にNSArrayあたりでも。さて寝る。
- Posted at:
- 2007/12/21 04:28:03
- 0 Comments
- 0 TrackBacks
- Tags:
- Trackback:
- http://blog.monospace.jp/2007/12/21/pyobjc-cocoa-nsstring/trackback/
TrackBacks
まだ登録されていません。
Comments
まだ登録されていません。