natsuの秘密基地です
カレンダー
10 | 2024/11 | 12 |
S | M | T | W | T | F | S |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
カテゴリー
プロフィール
HN:
natsu
性別:
男性
趣味:
酒など
自己紹介:
ここに書かれていることはフィクションです。
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
オブジェクトをインスタンス化してメソッドを呼び出すところまではうまくいった。
例えば、一番シンプルな、関数の形。
リターンしないようなメソッド。つまり、戻り値の型はvoid。
-(void) setRate:(float)newRate;
とかだと呼び出しがうまくいかない。
だれがどうみても、
ちなみにself._rateのアンダースコアは何も考えずにつけてるんで、
(意図的には)意味は無い。
っていうか、Pythonにtrueなんてあったか?
ちなみに、変数名の_rateのアンダースコアはなんも考えずにやってたけど、
関数名のアンダースコアは重要らしい。':'の代わりなんだって。
-(void) addURL:(NSString *)url fileName:(NSString *)name;
だったら、
def addURL_fileName_(self, url, name);
みたいな。
例えば、一番シンプルな、関数の形。
リターンしないようなメソッド。つまり、戻り値の型はvoid。
引数も受け取らない。
def test(self)
こういうのは普通に呼び出せる。
ちなみに、引数の一つ目は必ずselfが渡されてくる。
これは暗黙に渡されるので呼び出し時は必要ない。
だから、
[testObject test]
って呼び出せば、勝手にselfがやってくる。
この場合はtestObjectがselfになって渡されてくる。
これは暗黙に渡されるので呼び出し時は必要ない。
だから、
[testObject test]
って呼び出せば、勝手にselfがやってくる。
この場合はtestObjectがselfになって渡されてくる。
でも、こういう奴。
def setRate_(self, newRate):
Objective C風にいうと、
-(void) setRate:(float)newRate;
とかだと呼び出しがうまくいかない。
なんか、
@objc.signature
や
objc.selector
でメソッドの宣言をしなきゃいけないっぽい。
私は@objc.signatureでうまいこといかなかったんで、
objc.selectorを使ったけど、@objc.signatureのほうが新しいらしい。
で、さっきのsetRateだと、
def setRate_(self, newRate):
self._rate = newRate
setRate_ = objc.selector(setRate_, signature='v@:f')
っていう感じの定義になった。
だれがどうみても、
signature='v@:f'がくせもの、っていう雰囲気が伝わってくる。
ちなみにself._rateのアンダースコアは何も考えずにつけてるんで、
(意図的には)意味は無い。
どうやら、
[v]oidの戻り値
@第一引数はオブジェクト(self)
:区切り(Objective Cで見慣れてるあれ)
f第二引数はfloat
っていう意味らしい。
じゃあ、
def getTrue(self, intValue, objectValue)
return true
だと、
B@:i:@
なのか。
試してないけど。
っていうか、Pythonにtrueなんてあったか?
ちょっとこの辺はまた試してみるよ。ってことで。
文字列の扱いが気になるし。
でも、それはまた明日以降に。
今日は背中がぐきっ、ってなってパソコン打つのがちょっと辛い。
文字列の扱いが気になるし。
でも、それはまた明日以降に。
今日は背中がぐきっ、ってなってパソコン打つのがちょっと辛い。
すこし横になろう。実は今日はなんも出来てない。
ちなみに、変数名の_rateのアンダースコアはなんも考えずにやってたけど、
関数名のアンダースコアは重要らしい。':'の代わりなんだって。
-(void) addURL:(NSString *)url fileName:(NSString *)name;
だったら、
def addURL_fileName_(self, url, name);
みたいな。
PR
この記事にコメントする