
c言語とobjective-cを並行して勉強しています。
c言語では機能をまとめるために関数を定義できますよね。
-----
void display(int a){
printf("%d" , a);
}
int main(void){
display(10);
}
---
これでdisplayという関数に10という引数を渡して表示させることができますよね?
objective-cの場合は例えば以下のように書くことがわかり、コンパイルも通りました。
- (void)display{
NSlog(@" TEST ");
}
しかし・・・・呼び出すことができませんね。。。
objective-cの場合は[ インスタンス メソッド名 ]; のような呼び方なのですよね。
メソッドだけを呼び出すことはできない、ってことなのでしょうか・・・?
色々検索してみたのですが、
@implement~@endで囲んでクラスにして
インスタンスを作って、メソッドを呼ぶ方法ばかりで、
上記のC言語の例のような、単純な関数定義→呼び出しの方法を見つけることができませんでした。
上記のようなC言語の例はよくあると思うのですが、
これと同じことがobjective-cで、できるともできないとも、書いてないように思います。
例えば上のc言語と同じ動作をobjective-c
に移植するとどうなるのでしょうか・・・?というか、不可能、ということでしょうか・・・?
No.1ベストアンサー
- 回答日時:
void display(int a){
printf("%d",a) ;
/* NSLogを使うなら */
NSLog(@"%d" , a);
}
int main(void){
display(10);
}
Objective-Cで、「Objective」な部分を使わなければ、普通のCです。
この回答への補足
ご回答ありがとうございます。
確かに実行することが出来ました。ありがとうございました。
しかし、さらに試してみようと、アラートを表示するメソッドを作ってみると
コンパイルがとおりませんでした。
void display2(){
UIAlertView *alert = [
[UIAlertView alloc]
initWithTitle:@"警告"
message:@"よろしいですか?"
delegate:self // /【ここでエラー】Use of undeclared identifier 'self'
cancelButtonTitle:@"OK"
otherButtonTitles:nil
];
[alert show];
[alert release];
}
そこでメソッド表記を
-(void) display2{
とするとコンパイルが通りました。
しかしこれだと
display;
で呼ぶことが出来ませんでした。
でも、ここでよくソースを眺めてみるとdidloadにヒントがありました!
[self display2 ];
で呼び出すことが出来ました!
インスタンス部分には
self
とかけばよかったのですね?!
(これは正しいですかね??)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
CloseとDisposeの違い
-
VB.NET スプラッシュスクリー...
-
「ご処理進めて頂きますようお...
-
UPS警告音を止めたい
-
エクセルで、日付を入力すると...
-
EXCEL VBA マクロ 実行する度に...
-
DoEventsがやはり分からない
-
銀行の窓口処理の件で知ってる...
-
エクセルVBAで、MsgBox やInput...
-
【Excel】特定の文字を含むセル...
-
VBの質問#if 0 then ってどう...
-
EXCELのマクロが 実行時エラー5...
-
月度は何て読みますか?
-
Excelシート上のマクロを登録し...
-
UMLでの例外処理
-
日本語の文字化けを直す方法
-
Accessでフォームから別フォー...
-
VBAでループ内で使う変数名を可...
-
ボタンクリックイベント 重複...
-
日報の休日ボタン(トグルボタ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
CloseとDisposeの違い
-
C# 超初心者です。 this.Refres...
-
[C#]FormクラスのShowメソッド...
-
どういうプログラムで組みます...
-
フィールド(メンバ変数)のプリ...
-
VB.NET スプラッシュスクリー...
-
Graphicsプロパティ
-
VBの文法について質問です。
-
C#のインスタンスを参照渡ししたい
-
Pythonについて 関数の仮引数に...
-
「ご処理進めて頂きますようお...
-
エクセルで、日付を入力すると...
-
銀行の窓口処理の件で知ってる...
-
お客様から1MB未満の写真を送っ...
-
UPS警告音を止めたい
-
エクセルVBAで、MsgBox やInput...
-
Excelシート上のマクロを登録し...
-
VBAでCOPYを繰り返すと、処理が...
-
VBAでループ内で使う変数名を可...
-
【Excel】特定の文字を含むセル...
おすすめ情報