思い立ったが吉日!

iOSが好きです。

2015-10-01から1ヶ月間の記事一覧

Categoryクラスの追加

Categoryクラスの追加 Xcode7からFileNewして、Sourceの中にCategoryクラスの追加がない! StackOverFlowに解決策がありました。 NewFile -> Objective-C Fileの追加の中にあるようです。 File Typeの中にありました! File名はカテゴリの名前になります。 C…

QBImagePickerControllerを使うときに見たPHAsset

QBImagePickerController QBImagePickerControllerを使うと標準のUIImagePickerControllerでは画像を一枚ずつしか選択できなかったのが、複数選択が可能になります。 https://github.com/questbeat/QBImagePicker QBImagePickerControllerのREAD.MEを読むと …

MultipeerConnectivity

MultipeerConnectivityについて調べてみたことのまとめ MultipeerConnectivityはiOS7から追加されたクラッシックBluetoothの一種。 似たような通信にCorBluetooth,iBeaconがある。 が、CoreBluetoothもiBeaconもBLE(Blue)の一種。 BLEはBluetooth 4.0~の新し…

一瞬だけ表示して消えるModalView

一瞬だけ表示して消えるModalView ModalViewを0.5秒間だけSubViewを表示して再度閉じるアニメーションを実行することで、クイズの正誤を伝えるようなアクションができる。 UIButtonをBRViewControllerに接続 - (IBAction)showView:(id)sender { BRModalViewC…

Storyboardを使わず、Xibファイルで開発をすすめるとき

Xibファイルによるプロジェクト開発 準備 Storyboardを使わずにXibファイルでプロジェクトを進める際のViewControllerの呼び出し MainStoryBordを削除 TARGETSのGeneralのMain Interfaceのmainstoryboardを削除 AppDelegateを編集 - (BOOL)application:(UIAp…

アニメーション

animateWithDurationを使う [UIView animateWithDuration:0.5f // 何秒かけてアニメーションするか delay:0.5f // アニメーションし始めるまでの時間 options:UIViewAnimationCurveEaseInOut // アニメーションの加速・減速 animations:^{ // アニメーション…

遅延実行

遅延実行 GCDを使った遅延実行 dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 1.0 * NSEC_PER_SEC), dispatch_get_main_queue(), ^{ // 処理 }); performSelectorを使った遅延実行 [self performSelector:@selector(メソッド名) withObject:nil afterDel…

丸め処理を扱う

丸め処理をカスタマイズし、正確に計算する NSDecilmalNumberクラスNSNumberクラスのサブクラスで、10進数の四則演算を提供する。 丸め処理を行うようなときは四則演算子を使うのではなくきちんとNSDecimalNumberクラスに変換して計算する。 今回は0~255で表…

ローカルJSONデータの取り出し

ローカルのJSONデータの読み込み 今回はローカルのJSONデータを読み込むメソッドを作成。 格納されているJSONは配列型、JSONファイル名は引数で渡ってくることを想定。 +(NSArray*)getColorData:(NSString*)fileName { NSBundle *bundle = [NSBundle mainBun…

MVCを意識するために

MVCを意識するためのフォルダ構成 XcodeでCreate New ProjectしたらView,ViewController,ModelのGroupは作成しておく。

16進数をintへ変換

16進数をint型の0~255の数に変換する方法 // 2桁を取得 NSString *hex = @"AD"; // 16進数変換 NSScanner *scan = [NSScanner scannerWithString:hex]; unsigned int result; [scan scanHexInt:&result]; NSLog(@"ADは%dです",result)

NSCalendarが変わってる

iOS8の変更点 iOS8~らしいのだがNSCalendarの書き方が少し変わってたのでメモ NSYearCalendarUnit -> NSCalendarUnitYear NSCalendarUnitMonth ->NSMonthCalendarUnit NSCalendarUnitDay ->NSDayCalendarUnit NSCalendarUnitHour ->NSHourCalendarUnit など…

sendAsynchronousRequest in iOS9

iOS9 で sendAsynchronousRequest:queue:completionHandler がDeprecatedになってました NSURLSessionのdataTaskWithRequestまたはdataTaskWithURLに移行していきましょう。 NSURLSessionはiOS7から使えるようです。 NSURLSessionはシングルトンで呼ばなけれ…

特定のViewのAutoLayoutの解除のかき分け

特定のViewのAutoLayoutの解除のかき分け Objective-Cの場合 centerView.translatesAutoresizingMaskIntoConstraints = NO; Swiftでは、setterメソッドを使った書き方 [centerLabel setTranslatesAutoresizingMaskIntoConstraints:NO];

CodeでAutoLayout

CodeでAutoLayout制御 Viewを中央に表示 // サイズ指定して生成 UILabel *centerLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 100, 20)]; centerLabel.text = @"center"; // Layout制約を決める前にaddSubviewを先にコール [self.view addSubvi…

メモリ管理

メモリ管理について 「iOSデバッグ&最適化技法」を読みつつメモ Objecive-Cの参照カウントについて ARC無効の時の参照カウント0になってエラーが発生することについて 自分が作成したオブジェクトは全て自分が所有する オブジェクトの作成は「alloc」「new」…

MVC

MVC 先輩社員に勧められた木下誠さんの「iOS開発におけるパターンによるオートマティズム」という本を読み進める。 iOSアプリ開発においてViewController部分は肥大化しやすく、クラス設計する際にMVCの切り分けに悩む事があった。 今回はこの3点を覚えてお…

Objective-Cのimport

Objective-Cのimport Objective-Cのimportの違いをまとめる import <◯◯/◯◯.h>を使う場合 クラスライブラリ(CocoaやCocoa Touchに予め用意されているクラス)をインポートするときに使う #import <AVFoundation/AVFoundation.h> #import <UIKit/UIKit.h> import"◯◯.h"を使う場合 自作ファイルからインポート</uikit/uikit.h></avfoundation/avfoundation.h>…

Objective-Cのコーディングルール

Objective-Cのコーディングルール Objective-C独特の命名規則などのまとめ プレフィックス NSString,UIScrollViewと同じように2,3文字の省略文字をクラス名の頭につける 開発中アプリ名やファイル作成者名にちなんだ文字列 WFPerson,AWASoundなど プロトコル…

クラス変数とクラスメソッド

Objective-C クラス変数とクラスメソッド クラス変数とインスタンス変数の違い クラス変数はクラスに割り当てられる そのクラスを扱うときは変数の値は共通 インスタンス変数はインスタンスに割り当てられる インスタンスごとに変数の値が異なる Objective-C…

特命初期化メソッド

特命初期化メソッドについて アップルのドキュメントによると オブジェクトに複数の初期化メソッドを宣言する場合、そのうちの1つを特命初期化メソッドとする必要があります。 一般には、最も詳細な指定ができる(引数の個数が多い)メソッドを特命初期化メ…

プロパティとインスタンス変数について

プロパティとインスタンス変数について インスタンス変数はメソッド経由で、データのset、getを行う。 プロパティはインスタンス変数の定義、setter,getterが自動生成される。 @property NSString *name; @property NSInteger *age; プロパティの属性 // 読…

クラスの扱い

Objective-C クラスの扱い .hファイル 公開用のインスタンスメソッド、プロパティ、クラスメソッドを記述 .mファイル メソッドの中身を記述 クラスを使う際はinportが必要なことに注意。

インスタンスの生成

インスタンスの生成について インスタンス生成方法に NSString *str = [NSString new]; NSString *str2 = [[NSString alloc]init]; の2パターンが有る。 どちらでも同じなので、newの方が簡単に生成できる。 しかし、生成同時に初期値を代入することがある場…

int NSNumber NSInteger

intとNSNumberとNSIntegerの使い分け NSNumberについて忘れていたのでメモ。 NSIntegerはintとイコールで使える。 NSNumberはラッパークラスでありオブジェクトとして扱うときに使う。 16進数変換や割り算計算を行うときに使う。 // 数値の宣言 NSNumber *in…

Macが重い時にやることまとめ

Macが重いときに iOSアプリ開発をしているとコンパイル回数が多いせいか、結構Macが重くなります。 不要なログ的なデータ削除だったり、メモリやCPUの開放だったり、アクセス権の修復で軽くなることが多々有ります。 以下、terminalから叩くと効果あるかもし…

マークダウンの書き方まとめ

マークダウンの書き方まとめ テキストエディタはAtomを使っているので、Atomのマークダウンチュートリアルを借用しながらまとめる。 文字サイズの調整 # の数だけ小さくなる ###... + 半角スペース + 文字で書くこと! # h1 ## h2 ###### h6 h1 h2 h6 自体の…

staticの使い所

staticの使い所 swiftでは構造体と列挙型はfuncの前にstaticを付けるというくらいの認識でしかなく、methodを作成する際にstaticを、つける/つけないをしっかり理解できていなかったので、先輩に聞いたことをメモ。 staticはUtilityなど状態を持たないクラス…