Thursday, April 11, 2013

進捗状況3

進捗状況です。一番の変更点はUser Interfaceの変更です。
今こんな形です


Sunday, April 7, 2013

誰の人生を生きている?

本当に自分の決断は自分が下したと言い切れるだろうか?



確かにアドバイスはいただいた、でも最終的に決断を下したのは自分だ。と100%自信を持って言い切れるだろうか?



もちろん全ての人が自分の決断により生じるすべてに責任をもつ重みを背負うべきだとは思わない。



その人自身が現状に満足しているならどこにも問題はない



でも、現状に不満があって、何か解決策を探しているなら、もしかしたら解決策は自分の中にあるのかもしれない。



その解決策を選ぶことを自分自身に許してみよう。きっと世界が変わるはずだ




Saturday, April 6, 2013

xcodeで非同期通信

前回の投稿で非同期通信の仕方ができるようになりたいと書いたのですが、やってみたら意外とすぐできたので書いておきます
- (IBAction)asynchronousConnection:(id)sender {
    NSString *query = [NSString stringWithFormat:@"sample=%@", @"sample"];
    NSData *queryData = [query dataUsingEncoding:NSUTF8StringEncoding];
    
    NSString *url = @"http://localhost/sample/index.php";
    NSMutableURLRequest *request = [[NSMutableURLRequest alloc]init];
    [request setURL:[NSURL URLWithString:url]];
    [request setHTTPMethod:@"POST"];
    [request setHTTPBody:queryData];
    
    [UIApplication sharedApplication].networkActivityIndicatorVisible = YES;
    [NSURLConnection connectionWithRequest:request delegate:self];
}

- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response {
    NSLog(@"receive response");
}

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
    NSError *jsonError;
    NSMutableArray *returnedData = [[NSMutableArray alloc] init];
    returnedData = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&jsonError];
    NSLog(@"%@", returnedData);
}
- (void)connectionDidFinishLoading: (NSURLConnection *)connection {
 [UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
    NSLog(@"finish connection");
}

Friday, April 5, 2013

UILabelを透明にする

背景に画像を使用していて、その上にラベルをおきたいときてありますよね。
でも、直接おくとラベルのフレームのところだけ白くなりかっこわるい。。。ということでUILabelの背景を透明にする方法です


//プログラムから追加する方法
    UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(100, 100, 200, 40)];
    label.text = @"Sample text";
    label.backgroundColor = [UIColor clearColor];
    [self.view addSubview:label];

    //hファイルにすでに宣言されている場合
    self.label.backgroundColor = [UIColor clearColor];

こんな風に描けばOKです

Thursday, April 4, 2013

objective-CでのHTTPリクエストの簡単なサンプル

手っ取り早く言ってしまうと、サーバーと通信するための簡単なプログラムです。
形式は決まっているのに、なかなか覚えないためメモ
* こちらは同期通信になっております。
* 非同期通信はこちら→xcodeで非同期通信


    NSString *query = [NSString stringWithFormat:@"id=%@&date=%@", user_id, date];
    NSData *queryData = [query dataUsingEncoding:NSUTF8StringEncoding];
    
    NSString *url = @"http://localhost/social-alarm/sample.php";
    NSMutableURLRequest *request = [[NSMutableURLRequest alloc]init];
    [request setURL:[NSURL URLWithString:url]];
    [request setHTTPMethod:@"POST"];
    [request setHTTPBody:queryData];
    
    NSURLResponse *response;
    NSError *error;
    
    NSData *result = [NSURLConnection sendSynchronousRequest:request
                                           returningResponse:&response
                                                       error:&error];
   NSString *string = [[NSString alloc]initWithData:result encoding:NSUTF8StringEncoding];
   NSLog(@"%@", string);


こんなプログラムを実行するとurlに設定したurlにqueryを加えてサーバーへ送ることができます。
このやり方は同期通信といい、サーバーからのレスポンスをが帰ってくるまではなにも実行されないのが欠点です。僕も通信している間にくるくる回るやつが表示されるプログラムにしたい( ̄ω ̄;)

php側では普通に以下の方法でクエリーからのデータを取得できますよ(^^)/


$id = $_POST["id"];
$date = $_POST["date"];

参考 => http://libro.tuyano.com/index3?id=569004

Tuesday, April 2, 2013

XAMPP macのphp.iniの設定参考資料

http://ingwer-design.com/blog/php/xampp-for-mac-os-x2.html
この方のサイトが見やすくて参考になった

日付を取得・比較

    NSDateFormatter *df = [[NSDateFormatter alloc] init];
    df.dateFormat  = @"yyyy/MM/dd";
    NSString *str = [df stringFromDate:[NSDate date]];


時刻も取得したいときは
df.dateFormat = @"yyyy/MM/dd HH:mm:ss";
以上!

追加:NSStringとNSDateの変換

NSDate → NSString

    NSDateFormatter *formatter = [[NSDateFormatter alloc]init];
    [formatter setDateFormat:@"yyyy-MM-dd"];
    
    NSString *dateString = [formatter stringFromDate:date];

NSString → NSDate

    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
    [formatter setDateFormat:@"yyyy-MM-dd"];
    
    NSString *dateString = @"2012-03-23";
    
    NSDate *dateDate = [formatter dateFromString:dateString];


今回はこちらを参照→http://plaza.rakuten.co.jp/hiroymyan/diary/201004070001/

日付を比較

    NSCalendar *calendar = [NSCalendar currentCalendar];
    NSDateComponents *components = [[NSDateComponents alloc]init];
    
    components.year = 2013;
    components.month = 10;
    components.day = 3;
    
    NSDate *date = [calendar dateFromComponents:components];

    NSComparisonResult result = [date compare:[NSDate date]];
    if (result != NSOrderedDescending) {
        return YES;
    } else {
        return NO;
    }

NSOrderedDescendingのほかにNSOrderedSame, NSOrderedAscendingがある。
参考→ 年や日などを指定して NSDate を作成する
参考→objective-Cでの日付の比較について

過去の日付を取得


// 5日前のNSDateを取得
[NSDate dateWithTimeIntervalSinceNow:-5*24*60*60];