• ベストアンサー

objective-Cについてご相談があります。

現在objecive-cを勉強中の者です。 画像の53行目にある「self.lbCalc.text = str;」のうち、 「self」と「lbCalc」の分類と役割を教えて頂けないでしょうか。 「text」はプロパティであるということ、「lbCalc」はあらかじめ 決めたラベル名であるということは解るのですが・・・ どなたか何卒お願い致します。

noname#213637
noname#213637

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

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

スクリーンショットを撮るより、Xcodeでコピーして、Safariでペーストするほうが、かんたんじゃない?読む側にとっては、そっちのほうが格段に読みやすいわけだしね。 selfは、ViewControllerのインスタンスを指します。 lbCalcは、19行目で宣言されています。UILabelのインスタンス。IBOutletなので、Storyboard上のオブジェクトとリンクされています。 ところで、あなた、プログラミングは向いていないので、別の道を探したほうがいいと思いますよ。

noname#213637
質問者

お礼

ご丁寧なご回答どうもありがとうございました!

関連するQ&A

  • 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についてご相談があります。

    xcode6でMasterDetailApplicationを試しております。 Master画面のセルをクリックしてDetail画面に遷移した際、 標準でDetail画面の中央に貼られているLabelに、クリックした セル内の文字列が表示される様にしたいのです。 しかし、一度目のクリックでは表示されず、二度目のクリックで初めて 一度目にクリックしたセルの文字列がLabelに表示されてしまいます。 つまり見た目上は、Labelの表示がクリックより一回分遅れるのです。 ※添付画像を参考にして下さい 以下がその部分のコードです。 ----------------------------------------------------------------------- // セグエの設定 - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { [self tableView]; // セグエを「showDetail」と名付ける if ([[segue identifier] isEqualToString:@"showDetail"]) { // _cellMojiはid型のインスタンス変数。 [[segue destinationViewController] setDetailItem:_cellMoji]; NSLog(@"1番:%@",_cellMoji); } } // セル内の文字列を取得するメソッド - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { // セル内の文字列を取得する UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:indexPath]; // 文字列データをNSString型に変換する _cellMoji = cell.textLabel.text; NSLog(@"2番:%@",_cellMoji); } ---------------------------------------------------------------------- 以上、どなたか解決策をご教示頂けないでしょうか。 何卒宜しくお願い致します。

  • Objective-C[NSMutableStringクラスについて]

    Objective-C[NSMutableStringクラスについて] はじめまして。 NSMutableStringクラスで宣言したインスタンスをどこからでも呼び出したいと思い 以下のコードを作りました。 NSMutableString extern *Mixbox; -(IBAction)TestTime:(id)sender{ NSString *Time=@"ただいまの時間\n "; NSDate *date=[NSDate date];//時間の設定 NSDateFormatter *formatter = [[[NSDateFormatter alloc] init] autorelease]; [formatter setDateFormat:@"yyyy:MM:dd::hh:mm:ss"]; NSString *str = [formatter stringFromDate:date]; [Mixbox appendString:str]; [Mixbox appendString:Time]; self.flowView.text=(@"%@",Mixbox); } ビルドするとエラーになります。 どこからでもインスタンスを呼び出したい場合どのようにすれば良いのでしょうか? 回答をお願いします。

  • 【Objective-C】プロパテイについて

    Objectiv-Cの勉強を始めたばかりの者です。 プロパテイの機能を理解する為に以下のようなプログラムを書きました。 例1)まずは、プロパテイを使わない例です。 ーーーーーーー data.h ーーーーーーー #import <Foundation/NSObject.h> #import <Foundation/NSString.h> @interface Data : NSObject { NSString* str; } - (void)setStr:(NSString* )arg; - (NSString*)retStr; @end ーーーーーーー data.m ーーーーーーー #import "Data.h" @implementation Data - (NSString*) retStr{ return str; } - (void)setStr:(NSString*) arg{ [arg retain]; [str release]; str = arg; } @end ーーーーーーー main.m ーーーーーーー #import <stdio.h> #import "Data.h" int main(void) { Data* data = [[Data alloc] init]; [data setStr:@"aaa"]; NSLog(@"%@",[data retStr]); return 0; } 例2)次に、プロパテイを使って例1を書き換えてみました。 ーーーーーーー data.h ーーーーーーー #import <Foundation/NSObject.h> #import <Foundation/NSString.h> @interface Data : NSObject { NSString* str; } @property (retain) NSString* str; @end ーーーーーーー data.m ーーーーーーー #import "Data.h" @implementation Data @synthesize str; @end ーーーーーーー main.m ーーーーーーー #import <stdio.h> #import "Data.h" int main(void) { Data* test = [[Data alloc] init]; test.str = @"hoge"; NSLog(@"%@",test.str); return 0; } 例2を実行した結果、以下のように出力されました。 2010-02-05 22:17:50.696 data[1583:903] *** __NSAutoreleaseNoPool(): Object 0x100001068 of class NSCFString autoreleased with no pool in place - just leaking 2010-02-05 22:17:50.698 data[1583:903] hoge @propertyのオプションを(retain) ではなく、(assign)に変更すると、 2010-02-05 22:30:02.271 data[1619:903] hoge と出力されて、期待した結果が得られるのですが、なぜretainではダメなのでしょう? また、assignでも例1のようなメモリ管理は自動的に行われているのでしょうか? 以上、ご指導の程、よろしくお願いいたします。

  • C#でのメソッド名の更新方法を教えてください。

    現在C#を勉強中の者ですが、添付画像のように、一度ボタンをクリックしてメソッドを作成した後、再びプロパティでNameを変更した場合、赤線箇所のメソッド名を最新のメソッド名に更新する方法が知りたいです。 ラベルとかならプロパティのNameを変更するとコードの方も更新されてくれるのですが、ボタンなどのメソッドに対しては方法がわかりません。 方法が知りたいのでご教授のほどよろしくお願いいたします。

  • xcodeについてご相談です。

    objective-c初心者です。 画像の16行目にある、CMMotionManagerというものは、 どんなカテゴリー内の物で、どんな役割があるのでしょうか。 また、48行目にある同様の物とは役割が違うのでしょうか。 それと質問が複数になってすみませんが、こういった疑問に 答えてくれるサイトや書籍はありませんでしょうか。 以上、何卒宜しくお願い致します。

  • objective-cで困っています教えてください

    objective-cをトライ&エラーで試しながら学習をしている初心者です。タッチした所を中心にまず100×100の正方形を表示し、その後スライダーで正方形の大きさを決めてから画像のトリミングをしたいのですが、正方形が表示されないのと、タッチした位置と切り取られる位置がずれています。上記の内容で行き詰っており、知恵をお借りしたいと思い投稿しました。宜しくお願いします。 ViewController.mの内容 #import "ViewController.h" @interface ViewController (){ // UILabel *label; // UIImageView *uv; //中心の位置 float v; // X座標 float x; // Y座標 float y; } @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. //写真の表示 CGRect rect_uv = CGRectMake(0,20, 360, 360); UIImageView *imageView = [[UIImageView alloc] initWithFrame:rect_uv]; //画像のアスペクト比を維持しUIImageViewサイズに収まるように表示 imageView.contentMode = UIViewContentModeScaleAspectFit; UIImage *image = [UIImage imageNamed:@"hoge.png"]; [imageView setImage:image]; [self.view addSubview:imageView]; // UISliderのインスタンス化 CGRect rect_sd = CGRectMake(50, 400, 200, 10); UISlider *slider = [[UISlider alloc]initWithFrame:rect_sd]; // スライダーの最小値,最大値,値を設定 slider.minimumValue = 0; slider.maximumValue = 500; slider.value = 100; // スライドしている最中に値を調べられるようにする.デフォルトでYESだがサンプルのため slider.continuous = YES; // スライダーの値が変更されたときに呼ばれるメソッドを設定 [slider addTarget:self action:@selector(slider_ValueChanged:) forControlEvents:UIControlEventValueChanged]; // スライダーをビューに追加 [self.view addSubview:slider]; // ラベルの設置 CGRect rect_lb = CGRectMake(300, 400, 100, 30); label = [[UILabel alloc]initWithFrame:rect_lb]; [self.view addSubview:label]; // 標準ボタン例文 UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect]; btn.frame = CGRectMake(50, 450, 100, 30); [btn setTitle:@"切り取り" forState:UIControlStateNormal]; [btn addTarget:self action:@selector(trim:) forControlEvents:UIControlEventTouchDown]; [self.view addSubview:btn]; } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } /** * スライダーの値が変更されたとき */ - (void)slider_ValueChanged:(id)sender { UISlider *slider = sender; // スライダーの値をログに記述 NSLog(@"スライダーの値:%f", slider.value); // ラベルのテキストを設定 //float v = slider.value; v = slider.value; label.text = [NSString stringWithFormat:@"%2.f",v]; //四角形を描画 CGContextRef context = UIGraphicsGetCurrentContext(); // コンテキストを取得 CGContextStrokeRect(context, CGRectMake(x,y,v,v)); // 四角形の描画 } /** * タッチされたとき */ - (void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { // 1.anyObjectメソッドでいずれか1つのタッチを取得 // 2.locationViewメソッドで対象となるビューのタッチした座標を取得 CGPoint p = [[touches anyObject] locationInView:self.view]; x = p.x; // X座標 y = p.y; // Y座標 NSLog(@"タップ開始 %f, %f", x, y); //四角形を描画 CGContextRef context = UIGraphicsGetCurrentContext(); // コンテキストを取得 CGContextStrokeRect(context, CGRectMake(x,y,100,100)); // 四角形の描画 } /** * 切り取りボタンが押されたとき呼ばれるtrimメソッド */ -(void)trim:(UIButton*)button{ // ここに何かの処理を記述する // (引数の button には呼び出し元のUIButtonオブジェクトが引き渡されてきます) // 切り抜き元となる画像を用意する。 //UIImage *srcImage = /* UIImagePickerなどから取得したUIImage */ UIImage *srcImage = [UIImage imageNamed:@"hoge.png"]; // 切り抜く位置を指定するCGRectを作成する。 CGRect trimArea = CGRectMake(x, y, v, v); // CoreGraphicsの機能を用いて、 // 切り抜いた画像を作成する。 CGImageRef srcImageRef = [srcImage CGImage]; CGImageRef trimmedImageRef = CGImageCreateWithImageInRect(srcImageRef, trimArea); UIImage *trimmedImage = [UIImage imageWithCGImage:trimmedImageRef]; // 画像表示例文 //UIImage *img = [UIImage imageNamed:@"hoge.png"]; UIImageView *iv = [[UIImageView alloc] initWithImage:trimmedImage]; [self.view addSubview:iv]; } @end

  • Objective C(iPhone SDK)でテキストファイルから一

    Objective C(iPhone SDK)でテキストファイルから一行毎データを読み出す方法を教えてください. つい最近Objective-Cを始めた初心者です. サーバ上にあるテキストファイルを読み込み,一行ごとデータを取り出し,その一行ずつ取り出したデータをTableViewの項目として表示したいと思っています.現在コンパイルが出来ているのは, NSString* text; NSString* path = @"(URL)test.txt"; NSError* error; text = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:&error]; までです.また,読み込むテキストファイルの内容は 0001 0002 0003 0004 [EOF] となっています.このデータの一行ずつを配列に格納する方法を教えてください,よろしくお願いします.

  • Objective-Cの条件分岐についてお伺いしたい事があります。

    Objective-Cの条件分岐についてお伺いしたい事があります。 ボタンの名前をcurrentTitleプロパティで取得し、その名前を元に条件分岐処理を行いたく、下記の通りコードを書いているのですが、真の条件に適合しません。 コードの書き方が悪いんでしょうか?最近Objective-Cの勉強を始めたばかりで右も左も分からない状態です。どなたかご教授いただけないでしょうか? -(action) action: (id)sender; { UIButton* button = sender NSString * Str = button.currentTitle; if (str == @"ボタンの名前") {   条件が真の場合の処理 } }

  • Objective-C for文でのインスタンス

    既出の質問と類似してますが、解決しないので質問します。 Objective-CのNSMutableArrayを使いラベルを複数個作りならべたいのですが、 変数iを使ってラベルに番号をつける方法がわかりません。 今のコードは NSMutableArray *tiles = [NSMutableArray array]; for( int i=0; i<25; i++ ){ UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(0,0, tileSize,tileSize)]; label.text=[NSString stringWithFormat:@"%d",i]; [tiles addObject:label]; [self.view addSubview:label]; } です。 これを UILabel *label%d,i = [[UILabel alloc]initWithFrame:CGRectMake(0,0, tileSize,tileSize)]; のようにして、 label0、lable1、label2、label3・・・・ というように生成するにはどうしたらいいですか? Objective-C初心者です。 よろしくお願いします。

専門家に質問してみよう