• 締切済み

xcode スーパークラスとサブクラスの接続

xcodeでアラームアプリをつくっています。 初めてアプリをつくっている素人です・・ スーパークラスに、TableViewを設置して、そこにlabelを置いています。 そのTableViewはアプリ起動時の最初の画面になります。 Tableに時間設定やサウンド選択やスヌーズなどの項目を表記していて、 サブクラスにPickerを設置しています。 今は、その時間設定の部分でソースを作成しています。 時間設定のTableCellに、設定した時間も表記させたいので、labelを置いています。 サブクラスのPickerで設定した時間を、labelに表記させたいのですが、 Pickerとlabelの接続でつまづいています。 同じクラスにPickerとlabelがある場合は設定できたのですが、 クラスを変えたら、どのように設定したらいいか分からなくなってしましました。 まず、Pickerとlabelを連結させる為に、 Pickerのoutletsとactionは設定できました。 labelのoutletsとactionが設定できません。。 ○○.h(TableView用のViewControllerとPicker用のViewControllerをつくっています。)へlabelを引っ張っても、○○.hが反応しません。 @interface DatePickerView : UIView この様な指定仕方が間違っているのでしょうか? クラス名:スーパークラス という形で指定する様なので、ここでは Tableを設置しているクラス名:そのスーパークラス名 となるのですよね? ということは、 Tableがスーパークラスで、Pickerがサブクラスになるので、 そもそも、この連結はできないということなのでしょうか? 自分のクラスについての考え方がそもそも間違ってる様な気もしてきました・・ http://a-roundjp.com/archives/149 ここを参考にして、ほぼコピペで同じ様につくってみたのですが・・ 連結作業でつまづいています。。 よろしくお願いします。

みんなの回答

noname#190876
noname#190876
回答No.2

たぶん、あなたは、英語はだめなんでしょう。英語を読むのが問題なければ、いっぱい、ドキュメントは、Appleが出しているわけですから。  だから、まず、以下のアップルの日本語文書をよんでみることです。 https://developer.apple.com/jp/devcenter/ios/library/documentation/ProgrammingWithObjectiveC.pdf https://developer.apple.com/jp/devcenter/ios/library/documentation/CocoaEncyclopedia.pdf  そのあと、AppleのYour 1st iOS App のtutorialをやってみるのが、いいでしょう。 >簡単なものをひたすらつくってみたらいいのでしょうか  スーパークラスや、クラスメソッドとインスタンスメソッドの違い、プロパティの概念がわからずに、コーディングをやっても、時間の浪費で終わることでしょう。

noname#190876
noname#190876
回答No.1

残念ながら、あなたは、スーパークラス、サブクラス、クラスの継承関係、といった極めて基本的なことを理解していないので、この質問文も、意味不明なものになっています。  まず、Objective-Cの基本を勉強されることを、強く強くお勧めします。それが、わかったあとで、AppleのYour 1st iOS Applicationのチュートリアルをやってみることをお勧めします。

maaaaa355
質問者

お礼

どのように勉強したらいいのかが分からないのですが、簡単なものをひたすらつくってみたらいいのでしょうか?どっちにしろ、勉強は本当に必要だと自分でも思っています。アドバイス頂きありがとうございます。

関連するQ&A

  • [iPhoneアプリ開発]継承クラスを作らず

    Objective-cでiPhoneアプリを作っています 自前でクラスを作らず(.hファイルと.mファイルを作らず)別のファイルで基本的なクラスのインスタンスを作ってその場で設定したいんですが、どうすればいいでしょうか。 例えば、ある画面のコード(ViewController.mにします)で UITableViewController *foo = [[UITableViewController alloc] initWithStyle:UITableViewStyleGrouped]; (TableViewを表示させたい) と書き、その画面(ViewController)内のボタンやラベルを押せばfooに遷移できるようにします。 すると、確かに遷移はできるのですが何も無いページが表示されるだけです。 TableViewなので設定(セクションのタイトルだとかセルの数だとかを決める)をしなければ何も表示されないのは当たり前ですよね。 この設定をViewController.m内で行いたいのです。 いつもならUITableViewControllerを継承したクラスを作りそこで設定を行なっていました。 今回はそれを作りたいくない、というわけです。 できますでしょうか。 ちなみに遷移に関してですが、NavigationControllerを想定しています。 よろしくお願いします。

  • Xcode4のエラー(IPhoneアプリ)

    はじめまして。 IPhoneのアプリ作成に挑戦しています。 Xcode4のバージョンは 4.5.1です。 【はじめてのXcode4プログラミング】という参考書でIPhoneのカメラアプリを作る章があり、写真ライブラリから選択した画像を表示できるとのことです。 しかし、XcodeでRun(実行)すると、ViewController.mの最後2行【UIImage *originalImage =[info objectForkey:UIImagePickerControllerOriginalImage];】が赤くなり、【’dismissModalViewControllerAnimated’is deprecated: first deprecated in iOS 6.0】というエラー表示がでます。 全体のコードは下記の通りです。 ネットで調べてみましたが、解決方法がわかりません。 先に進めず困っています。 どうか解決方法を教えてください。 よろしくお願い致します。 ●ViewController.h// // ViewController.h // CameraApp // #import @interface ViewController : UIViewController - (IBAction)pressCameraButton:(id)sender; @property (weak, nonatomic) IBOutlet UIImageView *imageView; @end ●ViewController.m // // ViewController.m // CameraApp // #import “ViewController.h” @interface ViewController () @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } - (IBAction)pressCameraButton:(id)sender { UIImagePickerController *picker = [[UIImagePickerController alloc] init]; picker.delegate = self; picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; [self presentModalViewController:picker animated:YES]; } - (void)imagePickerController:(UIImagePickerController*)Picker didFinishPickingMediaWithInfo:(NSDictionary*)info { [self dismissModalViewControllerAnimated:YES]; UIImage *originalImage = [info objectForkey:UIImagePickerControllerOriginalImage]; self.imageView.image = originalImage; } @end

  • iPhoneアプリ作成時のXcodeのエラー

    はじめまして。 iPhoneのアプリ作成に挑戦しています。 Xcode4のバージョンは 4.5.1です。 【はじめてのXcode4プログラミング】という参考書でIPhoneのカメラアプリを作る章があり、写真ライブラリから選択した画像を表示できるとのことです。 しかし、XcodeでRun(実行)すると、ViewController.mの最後から4行目【UIImage *originalImage = [info objectForkey:UIImagePickerControllerOriginalImage];】が赤くなり、【No visible @interface for 'NSDictionary' declares the selector 'objectForkey'】というエラー表示がでます。 全体のコードは下記の通りです。 ネットで調べてみましたが、解決方法がわかりません。 先に進めず困っています。 どうか解決方法を教えてください。 よろしくお願い致します。 ●ViewController.h// // ViewController.h // CameraApp // #import @interface ViewController : UIViewController - (IBAction)pressCameraButton:(id)sender; @property (weak, nonatomic) IBOutlet UIImageView *imageView; @end ●ViewController.m // // ViewController.m // CameraApp // #import “ViewController.h” @interface ViewController () @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } - (IBAction)pressCameraButton:(id)sender { UIImagePickerController *picker = [[UIImagePickerController alloc] init]; picker.delegate = self; picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; [[self presentViewController:picker animated:YES completion:nil];} - (void)imagePickerController:(UIImagePickerController*)Picker didFinishPickingMediaWithInfo:(NSDictionary*)info { [self dismissViewControllerAnimated:YES completion:nil]; UIImage *originalImage = [info objectForkey:UIImagePickerControllerOriginalImage]; // ↑↑ 上記の行でエラーが出ます self.imageView.image = originalImage; } @end

  • Xcode、クラス

    Xcode4.6.3を使用しながらiPhoneアプリ作成しています。 情けない質問ですが、どうか聞いてやって下さい。 GameViewControllerがあるとし、そこに タップだけで反応する簡単なゲームを作成しました。 できればタイマーなどで少しアレンジを加えたいと思い、 ゲーム画面の端っこに設置した「設定ボタン」を押すと 別ページ(SettingViewController)にタイマーを作動させる為の On,Offスイッチを設置し、ONを選択した場合の時間設定などが GameVierControllerで反映されるようにしたいです。 色々と調べて、なんとなくですがわかったつもりでいたのですが、 いかんせん初心者で単語を調べながら文章を理解しようとしていたら なにがなんだかわけがわからなくなってしまいました。 どうか今一度、仕組みをご教授して頂けないでしょうか。 よろしくお願いします。

  • iPhoneのアプリ開発、Xcodeについてお伺い致します。

    iPhoneのアプリ開発、Xcodeについてお伺い致します。 Xcodeのユーティリティアプリケーションのテンプレートを使って、裏面(Flipside View)にTable Viewを配置するアプリを開発本にそって造っています。 Table ViewをViewに貼り付けて使用するには、DataSourceやDelegateを実装しなくても、UITableViewControllerクラスを利用すればTable Viewは使用可能、と開発本に記載してありました。その本に沿って、XcodeにてUITableViewと接続する UITableViewControllerのサブクラスを作成しようとしたところ、「Subclass of」と書かれたラベルの横にあるプルダウンメニューの中に、開発本にある様な「UITableViewController」がありません。 (写真が実際の画面の写真で、開発本にはこのプルダウンメニューにUITableViewControllerがあるのですが…。) どのようにすれば、UITableViewControllerのサブクラスを作成できるかご教示いただければ幸いです

  • UIImageViewをタップで、画面遷移するには

    iphoneのアプリ開発のなかでわからない部分があるので、投稿しました。 UIViewControllerクラスのサブクラス(Nomal_topViewController)の上に、UIViewクラスのサブクラス(PreviewView)の上に、UIImageViewのサブクラス(TapImage) というレイヤー順で表示しているのですが、TapImageをタップした際、新しいViewControllerを開く、もしくは全画面表示のViewを開く。という処理を行いたいのですが、どのような処理を実装すればよいのでしょうか? TapImageでタップは検出できています。 わかる方いましたら、ご返答よろしくお願いします。

  • スーパークラスとサブクラスについて

    Parent pc = new Children(); pc.getName(); 下記、2つのクラスがある状態で上記のようにしてgetName()を実行したところ サブクラスのgetName()が呼ばれました。このことからpcオブジェクトの実態はChildrenクラス なのだと理解していたのですが、サブクラスにしか存在しないメソッドを呼ぼうとして pc.getChildName()と記述したところコンパイルエラーになってしまいました。 pc.getParentName()となら記述することができるのですがpcオブジェクトのをどう理解すれば よいのでしょうか。 【親クラス】 public class Parent { public void getName() { System.out.println("Parent"); } public void getParentName() { System.out.println("親クラス特有のメソッド"); } } 【サブクラス】 public class Children extends Parent{ @Override public void getName() { System.out.println("Children"); } public void getChildName() { System.out.println("サブクラス特有のメソッド"); } }

    • ベストアンサー
    • Java
  • データベース(テーブル情報)操作方法に関して

    まだJAVAを初めて1ヶ月ちょいの初心者です。ぜひ教えて頂きたいことがあります。 データベースのテーブル操作に関してなんですが、どうコーディングしたら効率のよいプログラムになるのか検討段階でつまずいています。 今考えているのが、スーパークラスにてテーブルの各カラム変数を宣言し、そのサブクラスにてテーブル操作毎のSQL発行(スーパークラスから継承した抽象メソッドを用いて)をしたほうがいいのかなと考えてます。 つまり・・・ ----<<super class(抽象クラス)>>----- public abstract class InfoTable { private String name; private int age; : public String getName() { return Staff_ID; } public String setName(String name){ this.name = name } //抽象クラス(SQLを発行しテーブルを操 //作する抽象メソッド) public abstract boolean exec(); } とし、サブクラスにて継承&実装すればよいのかと・・・。 実際にテーブルのカラムが多くなれば、setter・getterを多く繰り替えし処理をしなければならなくなり、それは大変だし、プログラム的にもよくないんじゃないかと考えています。実際にサブクラスはサーブレットからデータを取得してから処理を行う予定なので、Vectorを使えばいいのかなとは思いますが、どう使ったらよいのか検討がつきません。 長々と書いてしまい申し訳ございません。 どなたか良い知恵をお貸し下さい!

    • ベストアンサー
    • Java
  • objective-c 画面遷移について

    今、iPhoneアプリを開発しています。簡単なカードゲームですが、 画面遷移について困っています。 サブクラス内のタッチイベントに、 [super presentModalViewController:viewController animated:YES]; と記述し、画面を切り替えたいのですが、 「'UIView' may not respond to 'presentModalViewController : animated:'」と 注意メッセージが表示され、 また、実行すると「Thread 1: received signal: "SIGABRT"」 となり、落ちてしまいます。 何分、初心者なもので、どこからどう手をつけたら良いのか分かりません。 色々調べたのですが、中々該当する答えが見つかりませんでした。 どなたか、お分かりになる方教えて頂けないでしょうか。 宜しくお願いします。

  • tableView reloadDataが出来ない

    Xcodeを用いてObjectiveCでiPhoneアプリの開発の勉強をしています。 TableViewControllerにて、ボタンを押した時にセルを追加する処理を組みたいのですが、うまくいきません。 NavigationBarに設置したボタンを押した時に、セルに表示するデータを追加する事は出来ているのですが ボタンのactionメソッドの処理の最後に [self.tableView reloadData]; と記述しているにも関わらず、テーブルの表示が更新されず、追加したデータが表示されません。 一度Viewを移動し再度そのテーブルを表示すると、追加したデータがテーブルに表示されます。 [self.tableView reloadData];の直下に置いたNSLogは表示されるので、どこかでプログラムが止まっているという訳でも無さそうです。 ボタンを押したらすぐにデータが追加され、テーブルに表示されるようにしたいです。 他に何かテーブルを更新する方法があるのでしょうか?