Sunday, November 24, 2013

画像をアプリ内に保存 / 取り出し

画像を保存する

画像をurlにわざわざ取りにいくのは時間もかかるしめんどくさいので、アプリ内に保存してしまいましょう。
LINEとかはそうしてますよね。オフラインでも友達の写真は表示されるのでわかります。

以下のコードでOK→(参照もと: http://fitss.jp/blog/2013/05/xcodeImagePicker.shtml)


            UIImage *image = self.image.image;
            NSData *imageData = UIImagePNGRepresentation(image);
            NSString *path = [NSString stringWithFormat:@"%@/image.png", [NSHomeDirectory() stringByAppendingPathComponent:@"Documents"]];
            if ([imageData writeToFile:path atomically:YES]) {
               NSLog(@"save successs");
            } else {
                UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"エラー"
                                                               message:@"画像が保存できませんでした。あとでもう一度お試しください"
                                                              delegate:self
                                                     cancelButtonTitle:@"確認"
                                                     otherButtonTitles:nil, nil];
                [alert show];
                return;

            }



そしてこちらが保存した写真を取り出す方法

画像を取り出す

NSData *imageData = [NSData dataWithContentsOfFile:[imageLinks objectAtIndex:i]];
UIImage *image = [[UIImage alloc]initWithData: imageData];

乱数を作成する

小数 (0 ~ 1.0)

double drand48()
これだけ!!

整数 (0 ~ x)

xが100の場合
int someinteger = arc4random() % 100
このとき生み出される数の範囲は0 <= x <= 99
99までしか生み出されない。
こんな感じ。

整数で望む範囲の数を取得するにはちょっと注意が必要かも。

「One Habit Log」がリリースされました

僕が初めて作ったアプリ「One Habit Log」がリリースされました。
One Habit Log on the App Store on iTunes

アプリを作ろうと思ったことは何度もあるんですけど、ユーザーのデータが必要でデータベースが必要だったり、スピードが出なかったりで個人では出来なかったんですね。(←単純に僕の実力が足りない)

でも、今回はネットワークへ接続することはしないですし、ユーザー一人で完結するサービスなのでそこら辺の心配はなかったので楽だったです。

今回の一番の収穫はMagical Recordを使えるようになったこと。

次はこれをGoogle ChromeみたいなUIで複数記録できるようにしたいんだよね。


方法は暇なとき探しているけど、なかなかViewを取得して表示てことができない。
と思ってたら意外と簡単にUIViewを画像で保存することは出来るらしい。
そうだ、プログラミングしよう UIViewを画像で保存する。

アップデートできそう?

Sunday, November 10, 2013

やっとアプリの提出がおわったーー!!

ValidationでXcodeがクラッシュしていたのですがなんとか、解決できましたー!

Provisioning Profileのファイルが登録されていなかったからでした。
Provisioning Profileを制作するとこんな画面になりました。


これで僕が作成したアプリが「Waiting For Review」になりました!

これで審査が通れば、晴れてApp Storeに出ます!

Saturday, November 9, 2013

archiveしたアプリをValidateできない

Validateを押して自分のアカウント情報を入れると、ユーザーのauthentication fileが見つかりませんて出てきて、そこでiTunes Connectからダウンロードスルを選択するとxcodeが落ちる。

不可解

2013/11/10 追記
この問題ですが解決しました!
やっとアプリの提出がおわったーー!!

これで審査が通ればApp Storeに現れます!

Saturday, November 2, 2013

NSStringの空白かチェック

UITextFieldとかUITextViewに入力された文字が空白かどうかを判定するメソッド。
ここから丸パクリ。iphone - NSString is empty - Stack Overflow


- (BOOL) isEmpty:(NSString *)string {
    if([string length] == 0) { //string is empty or nil
        return YES;
    }
    
    if(![[string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] length]) {
        //string is all whitespace
        return YES;
    }
    
    return NO;
}

UITextViewなどに囲い線をつける

何度もやっていたのに久しぶりに触りだすと忘れていたのでメモ。
UITextViewでユーザーに入力してほしいから領域を示すために画像を周りを線で囲いたいことがある。


//1. まずQuartzCore.frameworkを使用する

// 2. つぎにFirstViewContorller.mとか使用したいmファイルでQuartzCoreをimport

// 3. あとは使用したいところに以下のように指定する
    self.text.layer.borderColor = [UIColor grayColor].CGColor;
    self.text.layer.borderWidth = 1.0;
    self.text.layer.cornerRadius = 4.0;

Friday, November 1, 2013

UITableViewのメソッドとか

UITableViewControllerを使わないでUITableViewを使いたいてのはよくあると思うけど、よくテーブルビューのためのメソッド一覧を忘れてしまうのでその一覧。
僕が比較的よく使うやつ。
//table delegate
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
    return 1;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    return 10;
}

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
    return 100;
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    UITableViewCell *cell = [[UITableViewCell alloc]init];
    
    static NSString *CellIdentifier = @"OneQuestion";
    cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];

    return cell;
}

-(void)tableView:(UITableView *)tableView didHighlightRowAtIndexPath:(NSIndexPath *)indexPath{

}

-(void)scrollViewDidScroll:(UIScrollView *)scrollView {

}