PyObjCでCocoa探索 NSString編

現在このブログは中途半端に移行されていますので、画像が表示されなかったり、レイアウトが崩れたりする可能性があります。
この記事を旧ブログで閲覧するには、以下のURLからご覧ください。
http://blog2.monospace.jp/2007/12/21/pyobjc-cocoa-nsstring/

昨日の続きで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

まだ登録されていません。

Add Comment

Add Comment