• ベストアンサー

Objective-Cのプログラム式について、お伺い致します。

Objective-Cのプログラム式について、お伺い致します。 iPhoneのアプリを作っているのですが,全く同じアプリでも若干式が違うのが理解できません。以下の意味を教えていただけると幸いです。 (1) - (void)calc (2) - (void)awakeFromNib (3) [self calc]; (4) float (5) sender

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

1) プライベートメソッドでしょうか?apple のフレームワークでは見当たりませんでした。クラスの設計者しかわからないのでは? 2) interface builderにてインスタンス化されているオブジェクトに対して、アプリケーション実行時、nibファイル読み込み完了した時点で送られるメッセージです。自分で設計したクラスにこのメソッドを記述しておき、interface builder でインスタンス化しておけば 起動時に awakeFromNib が呼ばれるので、起動時にしておきたい処理を - (void)awakeFromNib {} の{}内に記述しておけば実行されます。 3) [self calc]; を記述しているクラス自身に対して、calcメソッドを実行します。self は 自身を表します。 4)c言語の変数型です。他の型に関してもネットに情報が豊富にあります 5)大抵メッセージの送り主から送られるオブジェクトです。NSButton クラスのインスタンを押すと以下のメソッドが送信される場合、senderは押したボタンのオブジェクトになります -(IBAction)buttonAction:(id)sender { NSLog(@"sender %@",sender); }

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

Objective-Cの言語知識はどの程度おありなのでしょうか? C言語の知識はどうでしょうか? このような部分だけ切り出されても、正確なことは言えません。 (1),(2) C言語で解釈すれば、「void型に型変換して、符号反転(だが、void型にマイナス演算はないのでエラー)」です。 が、おそらく、オブジェクトの宣言または定義の中でのインスタンスメソッドの宣言/定義だと思われます。 - (void)calc は「 戻り値がvoid(=なにも返さない)のメソッド calc」という意味です。 (3) C言語で解釈すれば、配列の添字ですが、前に配列/ポインタが無く、[]の中も「式」になっていないので、エラーです。 が、おそらく、オブジェクトへのメッセージ送信です。 selfは特別なオブジェクトで、送信側のオブジェクト自身を示します。 おそらく、(1)で宣言されたオブジェクトの中で、(1)のcalcメソッドを呼びだすためのものと思われます。 (4) 浮動小数点(実数)のfloat型です。C言語の仕様にあるものです。double型に比べて有効桁数が小さいものです。 変数、関数とその引数の宣言、型変換等に使われます。予約語なので、それ以外のものに使用できないはずです。 その前後がないので、どんな使われ方かわかりません。 (5) センダという概念があります。おそらく、センダを受け取るための引数か、センダそのものかです。 これも、前後が無いと正確なことはわかりません。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • [objective-C]配列について

    はじめまして。 objective-C、cocos2dについての質問です。 iPhoneアプリを勉強しながら作り始めたのですが詰まってしまい、できればご助力をお願いしたいと思い質問させていただきました。 cocos2dというフレームワークを使用し簡単なRPGを作りたいと考えております。 そこでキャラクターのステータスを配列に格納し、どのシーンからも参照したいのですが、どうしてもうまくいきません。 別クラスでインスタンス変数を作り、それを利用して配列を作成する方法で実装しようとしており、実際のコードは以下の通りになります。 ---------------------------------- <Character.h> @interface Character : NSObject{ NSInteger characterStateAtk_; ・(Def、Hpなど) ・ } @property (nonatomic, assign) NSInteger characterStateAtk;  ・  ・ @end <Character.m> #import "Character.h" @implementation Character @synthesize characterStateAtk = characterStateAtk_;  ・  ・ @end キャラクターステータス生成部分 <CreateScene.h> @interface CreateScene : CCScene { NSMutableArray* characterStateArray_; } @property (nonatomic, assign) NSMutableArray *characterStateArray; @end <CreateScene.m> @interface CreateScene() - (void) pressReloadButton:(id)sender; - (void) createCharacterState; @end @implementation CreateScene @synthesize characterStateArray = characterStateArray_; - (void) dealloc{ [self.characterStateArray release]; [super dealloc]; } - (void) createCharacterState{ self.characterStateArray = [NSMutableArray array]; Character* priState = [[[Character alloc]init] autorelease]; priState.characterStateAtk = random() % 5 + 5; ・ ・ [self.characterStateArray addObject:priState]; } (その他の処理) - (void) pressReloadButton:(id)sender{ [self createCharacterState];  (ここでcharacterStateArrayを取得して表示したい) } ---------------------------------- 最初は、 NSInteger x; x = [[self.characterStateArray objectAtIndex:0]intValue]; で取得しようとしたのですがエラーとなり実行できませんでした。 (調べていくうちにobjective-Cでは配列の中身はオブジェクトしか使えないという事を知りました) プログラム中の(ここでcharacterStateArrayを取得して表示したい)の部分について、実装方法や考え方についてご助言をいただけないでしょうか? よろしくお願いいたします。

  • objective-cに関する質問です。

    objective-c初心者です。以下の参考書に載っていた初期化という処理についていまいち理解できません。 理解できない所は、何度も出てくるselfが何者なのか、というコトと、 [self.view addSubview:_textField]; このaddsubviewは何なのかということです。 調べても分からなかったので、親切な方教えて下さいますと幸いです。 よろしくお願い致します。 _____________________________ //初期化 - (void)viewDidLoad { [super viewDidLoad]; //テキストフィールドの生成 _textField=[self makeTextField:CGRectMake(10,20,300,32) text:@""]; [self.view addSubview:_textField]; //書き込みボタンの生成 UIButton* btnWrite=[self makeButton:CGRectMake(55,62,100,40) text:@"書き込み" tag:BTN_WRITE]; [self.view addSubview:btnWrite]; //読み込みボタンの生成 UIButton* btnRead=[self makeButton:CGRectMake(165,62,100,40) text:@"読み込み" tag:BTN_READ]; [self.view addSubview:btnRead]; }

  • objective-cにはCのような関数はない?

    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 に移植するとどうなるのでしょうか・・・?というか、不可能、ということでしょうか・・・?

  • Objective-cの型の初期化について質問です。

    Objective-cの型の初期化について質問です。 たとえば次のようなfloat型の戻り値関数を定義していて、 ----------------- - (float) getMoveSize { float moveSize = 1.1f; return moveSize; } ----------------- 関数の戻り値を取得しようとするとコンパイルエラーになります。 ----------------- float height = [self getMoveSize]; //→error: incompatible types in initialization ----------------- どのようにすればよいか教えて下さい。 float height = 0.0f; height += [self getMoveSize] みたいなことをやりたいだけです。

  • objective-cでの引数について

    お世話になります。 引数の使い方について以下の様な事が可能なのか分からなくて困ってしまい質問します。 検索等は行いましたが目的のものが見つからなかったので、、 以下ですが、あるボタンをタップすると、buttonDidPushを実行するプログラムがあったとします。 @implementation ViewController -(void)viewDidLoad{ ~中略~ [button addTarget: self action:@selector(buttonDidPush) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:button]; } -(void)buttonDidPush{    処理 } @end ここで聞きたいのは、 ボタンのところで、引数(数値変数 x )をbuttonDidPushに持っていくことができるかどうかなのですが、 例えば以下のように変更しました。 action:@selector(buttonDidPush) ↓ action:@selector(buttonDidPush:x:) -(void)buttonDidPush{ ↓ -(void)buttonDidPush(Integer)x{ としましたが、build successで一応シミュレータは動きましたが、 ボタンをタップするとmain.mのほうでエラーが出てしまい動きませんでした。 なんとなく文法が間違ってるんじゃないかと思いますが、どこか心当たりのある方、よろしくお願いいたします。 尚、数値xはintで宣言済みです。 main.mでのエラー内容は int retval = UIApplicationMain(argc, argv, nil, @"testAppDelegate"); のラインで、「Thread1:Program received signal: ""SIGABRT.」と出ていました。 また、私自身が何かobjective-cの文法について重大な勘違いをしている可能性もあります・・

  • Objective-CのNSThreadで作ったthreadを外部から

    Objective-CのNSThreadで作ったthreadを外部から終了させる 現在Iphoneでプログラミングをしているのですが、Threadをthread処理外から終了させるためにはどうしたらいいのかで、悩んでいます。 ソースコードで説明させていただくと -(void)main {   [NSThread detachNewThreadSelector:@selector(thread) toTarget:self withObject:[NSNumber numberWithInt:1]]; [NSThread exit];//このような処理したい } -(void)thread {   while(true)   {   } } ご回答よろしくおねがいします。

  • objective-cでUIButtonを作成後

    xcodeのobjective-cで書いています。 UIButtonをプログラムで複数生成し、 その後別のボタンを作成し、そのボタンを押したら任意のボタンを削除(隠すのではなく)する方法を模索しています。 @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. for (int i = 0; i < 5; i++) { UIButton *bt = [UIButton buttonWithType:UIButtonTypeRoundedRect]; bt.frame = CGRectMake(20.0f, 20.0f + (i * 25), 20.0f, 20.0f); bt.tag = i; [bt addTarget:self action:@selector(pushBt:) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:bt]; } } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } - (IBAction)pushBt:(UIButton *)sender { [sender removeFromSuperview]; } 押したボタンを消す事はできるようなのですが、 一度に全て消す、tagの1と2を消す等の方法や考え方などご教授お願いします。

  • C、Objective-Cについて

    現在iPhoneアプリ作成のため、C言語を勉強しています。 以前にJavaを勉強したことがあるため、C言語の勉強を始めてみて、まだまだ序盤ではありますが「Javaと同じ部分が結構あるなぁ」と感じています。 iPhoneアプリを作成しようと思い、勉強を始める際、C言語から勉強した方がよいとネットで多く見られたので、C言語から勉強をしているのですが、Javaと共通部分が多いと感じる今、このままC言語をしっかりと勉強した上でObjective-Cに移行した方がよいか、すぐに移行して勉強をした方がよいか悩んでいます。 アプリ開発をされている方々の経験則からアドバイスを頂けるとうれしいです。 よろしくお願いいたします。

  • Objective-Cのコミュニティ

    iPhone, iPadのアプリ開発のためObjective-Cを勉強しているのですが、情報交換ができるコミュニティサイトを探しています。ツイッターなどでハッシュタグを探しているのですがなかなか適当なものが見つかりません。 何かご存じの方おられましたらよろしくお願いいたします。

  • objective-c undo機能について

    objective-cでiPhone用の簡易お絵描きアプリのかいはつを行っています。 undo,redo機能を付け加えたいと考えているのですが、調べてみても理解に至りませんでした。 具体的には、まず、undo用のUIButtonを作成し、線を描き、その操作を取消したい時に、そのUIButtonを押せば、操作の取り消しが出来る。 といった感じです。 どなたかお分かりの方、いらっしゃいましたら、よろしくお願いします。

マイクが機能しない
このQ&Aのポイント
  • Zoomでミーティングに参加しても音が出ない
  • Biosのセットアップ初期化しても同じ症状
  • スピーカーは正常でマイクのテストができない
回答を見る