• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:objective-C(Xcode)に関して質問があります。)

objective-C(Xcode)に関する質問

このQ&Aのポイント
  • objective-C(Xcode)に関する質問があります。新しいプロジェクトを作成し、クラスを追加する方法を教えてください。
  • エラーが発生しているコードを確認しましたが、問題は特定できませんでした。
  • objcクラスを使用する際に注意することはありますか?

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

  • ベストアンサー
  • harawo
  • ベストアンサー率58% (3742/6450)
回答No.3

> URLは下記の通りです。 リンク先の中の「CClasses/CalcViewController.m」。 メソッド「- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil」に記述されている、「_calculator = [Calculator new];」。 その「new」が、インスタンス生成+初期化メソッドです。 詳しくは、NSObjectのリファレンスで、クラスメソッド「new」を調べてください。 ※私が勉強したサンプルコードで、newを使っているのは、珍しいです。ほとんどくそまじめに「[[ClassName alloc] init]」と記述しています。そもそもinitで初期化するケースが少なく、「[[NSView alloc] initWithFrame: ~]」のような、クラス独自の初期化メソッドを使っているからだと思いますが……

gQgA
質問者

お礼

早速調べてみます。 ありがとうございました。

その他の回答 (2)

  • harawo
  • ベストアンサー率58% (3742/6450)
回答No.2

> サンプルコード(calculator クラス)にはこの記述がなかったのですが、 > そのわけはなぜでしょうか。 そのサンプルコードを見ないと、なにも答えられません。 Apple提供のサンプルコードなら、Appleのデベロッパー向けサイトからすべてダウンロード可能なので、探し出して、URLを記述してください。 ※allocしたインスタンスは、どこか不用になった時点でreleaseしてください。あるいはautoreleaseしてください。

gQgA
質問者

お礼

すみません。 URLは下記の通りです。 https://developer.apple.com/iphone/library/samplecode/iPhoneUnitTests/Introduction/Intro.html もう少しお教えいただければ幸いです。

  • harawo
  • ベストアンサー率58% (3742/6450)
回答No.1

インスタンスtcが生成されてません。 allocで生成し、initで初期化しないと、インスタンスは機能しません。 ただ「TestClass *tc;」と宣言するだけでは、だめです。 (ほかにも、怪しいコードがあるんですが……)

gQgA
質問者

お礼

push関数に以下のコードを追加しました。 tc = [[TestClass alloc]init]; とりあえず、代入はできました。 ありがとうございました。 サンプルコード(calculator クラス)にはこの記述がなかったのですが、 そのわけはなぜでしょうか。 (良く構造から見てみると、私のと違うのはわかりましたが・・・)

gQgA
質問者

補足

早速の回答ありがとうございました。 サンプルコードを確認してみます。

関連するQ&A