iOS Swift Objective-C

Setting up CocoaPods master repoが終わらない

pod setupで止まったままで何も進行ない状態の場合にすること pod setup --verbose でどこで止まっているのかを確認。 その他方法は、すでに色々とみんな書いているので、割愛

NSDictionaryから取り出したValueの型を判断するの巻(NSNumber)

NSDictionaryに bool or int を入れた場合、NSNumberに変換して入れると思いますが、 これを今度取り出す時にそれが元々 bool or int なのかを判断するのに手間取ったので備忘録を記載しておきます。 入れる時と取り出す時をこちらでハンドリングできれば、…

iphoneのホーム画面のように、デバイスを傾けたら、背景の画像も動く

iphoneのホーム画面のように、デバイスを傾けたら、背景の画像も動いて傾くっていうものを実装。 注意:imageViewは、画面のサイズよりも若干大きく設定をしておく x方向の指定 let xMotionEffect = UIInterpolatingMotionEffect(keyPath: "center.x", type:…

Unable to find a specification for `XXXXXX`

[!] Unable to find a specification for XXXXXX エラーでPod installできない 下記をpodfileに追加 source 'XXXX.git' //GitのURL 参考:0.36以降では、プライベートのspecリポジトリを使っている場合、source指定が必要のようです pod installでのobjectiv…

iOSメモリ圧迫テストを実現する

iOSでメモリ圧迫時にkeyChainを読み込めないバグがあるという話を聞いたので、試してみる為に、 一旦メモリ圧迫時の環境をつくる事にしました。 今回やりたい事は、メモリ圧迫時の環境をつくる。なので、デブッグしたい処理の直前で、メモリを確保して圧迫し…

Xcode7.1にバージョンアップしたらAlcatrazが消えた!!

下記のコマンドで再度復活する! defaults delete com.apple.dt.Xcode DVTPlugInManagerNonApplePlugIns-Xcode-7.1

import ""と<>の違い

ヘッダーのimport時に #import <hoge.h> と、書くか #import "hoge.h" と書くか迷う時がありますが、その違いについて、、、、 <>で囲む場合は、システムにあらかじめ用意されているフレームワークをimportする場合 ""で囲む場合は、自分で作成したフレームワークをi</hoge.h>…

xcodeのbuildsettingの情報を書き出す

xcodeのbuildsettingの情報を書き出す。 チーム開発していると、各Xcodeの環境がちがくてbuildエラーになることがあります。 xcodeの環境までは、ソース管理していないので、そこがネックになります。 なので、その設定を一覧で出せるコマンドを書いておきま…

xcodeビルドエラーとの戦い

Xcode6.3で実装中、ビルドが通らないエラーに遭遇したのでその時にやったのを備忘録的にのこしておきます。 ビルドすると下記のエラーに Undefined symbols for architecture x86_64: "_OBJC_CLASS_$_nanostreamAVC", referenced from: __TTSf4g___TFC10xxxx…

自動ロックをさせない

[UIApplication sharedApplication].idleTimerDisabled = YES; 注意!アプリが終了する時は 「NO」に戻しておきましょうー!

充電器に刺さっているかをチェックする

UIDevice* device = [UIDevice currentDevice]; device.batteryMonitoringEnabled = YES; UIDeviceBatteryState deviceBatteryState = [UIDevice currentDevice].batteryState; NSLog(@"%ld",deviceBatteryState); UIDeviceBatteryState typedef enum { UIDe…

カメラ許可を確認するの巻

カメラアクセスの許可についてコード側から確認するサンプルを作成したので、載せておきます。 #import <AssetsLibrary/AssetsLibrary.h> #include <AVFoundation/AVFoundation.h> + (BOOL)checkPermissionOfCamera { NSString *mediaType = AVMediaTypeVideo; AVAuthorizationStatus authStatus = [AVCaptureDevice autho</avfoundation/avfoundation.h></assetslibrary/assetslibrary.h>…

xcodeのデバックで式を入れたりしてみる

これまた、調べていたら、ほんとに参考になったブログさんがあったので、紹介。 ブレークポイントで止めて po self てやると、selfの中身が見えたりします。 参考 Xcode5でLLDBデバッガコマンドを使ってみる - Object for cutie Xcode5でLLDBデバッガコマン…

レガシーな書き方を改善せよ

レガシーな書き方はやめようという話があったので、レガシーってなんだって事で、 いいブログさんがあったので、それを熟読しておこう。 Modern Objective-Cで実現するシンプルコーディングのススメ

viewがどんな感じに乗っかっているのかを確認する

NSArray* array =[(UINavigationController *)self.window.rootViewController viewControllers]; //確認 NSLog(@"%lu",(unsigned long)[array count]); for (id hoge in array){ NSLog(@"%@",hoge); }

layoutSubviewsについて纏めている方のリンク

とっても参考になったので、リンクを残しておこう layoutSubviewsとsetNeedsLayoutとsetNeedsDisplayとlayoutIfNeeded - minimalab ヒビノアワ: loadViewとviewDidLoadとself.view

iOSシミュレータの初期化

iOSシミュレータを使ってて、設定をあれこれいじって起動しなくなったりした時の対処法。 「iOSシミュレータ(iOS Simulator)」>「コンテンツと設定をリセット(Reset Content and Settings)」を選びます。 参考 iOSシミュレータのリセット | AS blind side

projectで使ったライブラリの書き出し

プロジェクトでOSSを使用する事があるかと思いますが、 Xcodeの場合、基本的にcocoapodsでインストールする事が多いと思います。 で書き出しですが、 cocoapodsで紹介されていたので、ここに備忘録として書いておきます。 Podfileに下記を追記 post_install …

facebook,twitterに投稿する

Social.framework使用してfacebook、twitterに投稿したサンプルを載せておきます。 また、ネットワークがつながっていない時は、こちら側で検知できるようにしました。 networkの状態確認は、Appleが公式ライブラリ「Reachability」を使用します。 まず下準…

Lineに画像を投稿する

Lineに画像を投稿するサンプルを作りましたので載せておきます。 + (void)postImageToLine:(UIImage *)imageName { UIPasteboard *pasteboard = [UIPasteboard generalPasteboard]; [pasteboard setData:UIImageJPEGRepresentation(imageName, 1) forPastebo…

coredataのdbは、どこに保存されるの?シミュレーター編

sqliteで保存したデータを確認する事はよくあるかと思いますが、 そのsqliteのDBはどのにあるのでしょうか? 下記のパスにDBがあります。 /Users/ユーザー名/Library/Application\ Support/iPhone\ Simulator/7.1-64/Applications/プロジェクトの番号/Docume…

クラスメソッドとインスタンスメソッドについて

objective-cでは、クラスメソッドとインスタンスメソッドがあります。 その違いは何なんでしょう。 クラスメソッドは、「+」で始まります。 インスタンスメソッドは、「-」で始まります。 て本に書いてあって、見れば分かるかもしれませんが、 その使い分け…

dispatchのcancelの方法を実践してみる

別スレッドでタイマーなど処理を行いたい場合にカーネルに登録できるGCDを使用できます。 このGCDはキャンセルもできるのですが、 今回は、他のクラスからcancelをしたいと思ったのでそのような書き方をしています。 正しい書き方かは分かりませんが、備忘録…

UIUserNotificationSettingsでiOS通知設定確認

アプリの通知について、インストール初回に許可を請うと思いますが、 その後ユーザがどのような設定になっているのかを確認したい場合って結構あると思います。 その場合のサンプルの備忘録を残しておきます。 今回、「UIUserNotificationSettings」を使って…

addsubviewされてないviewを消す

addsubviewばっかやっているとメモリリークおこしてどぼんなので、 解放したいときってあるかとおもいますが、 その解放で、addsubviewされていないviewを解放してどぼんするのも嫌なので、 そんな時に便利なのが「removeFromSuperview」です。 これをいれて…

ブロック構文の基本

blockについて「ブロックプログラミングトピック」を読んで少し理解する。 基本概要 ブロックオブジェクトは、その場限りの関数の本体を、CやCから派生した言語の式として作成する手段を提供します。 コールバックとして特に便利です。それは、ブロックが、…

レキシカルスコープ

レキシカルスコープ A { var x; } B { var x; // A内のxとは別物 C { var y; // Cの内側からしか見えない } } ブロックAの変数xとブロックBの変数xは同じ名前をもつがブロックが異なる為別のものである。またBの中ではCのようにさらに内側の変数を見ることが…

CocoaControlsPluginは、便利なので入れましょう

Cocoaでいいのがないかなーって探しているときに、便利なのが、 CocoaControlsPlugin 画像があるので、イメージがわいてとっても重宝しています。 参考 yeahdongcn/CocoaControlsPlugin

インデント自動修正

xcodeでのインデント自動修正 ctrl + i

複数の変数をまとめて宣言

long hogelong, hogelong2 , hogelong3;

NSString NSInteger の変換

NSStringをNSIntegerに変換 NSString *stVal=@"1234"; NSInteger num=[stVal intValue]; NSIntegerをNSStringに変換 NSInteger numVal=1234; NSString *stVal=[[NSString alloc] initWithFormat:@"%d",numVal];

今日より前の日付かを判断する

今日より前の日付かを判断する方法 NSDateクラスの「timeIntervalSinceNow」メソッドを使うことで可能です。 NSDate *targetDate = ...; // 日付 if ([targetDate timeIntervalSinceNow] <= 0) { // 日付が本日以前 } else { // 日付が本日以降 } 二つの日付…

interfaceとimplementation

宣言部分 @interface HogeClass : NSObject { } @end 実装部分 @implementation HogeClass : NSObject @end

iOSのコーディング規約を考えてみる

iOSのコーディング規約を少し考えてみようと思います。ちょっとまとめてみよう。 ざっくり基本 インデント space4文字、tabは使わない キャメルケースで記述(例外あり) 複数の語から成る名前の場合、その一部として、あるいは区切り文字として、句読点類(ア…

webviewを使ってみる

#import "ViewController.h" @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; NSURLRequest* req = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://yahoo.co.jp/"]]; [webView loadRequest:req]; } - (void)didRe…

Localpush(UILocalNotification)

プッシュする部分の実装。 これをbackgroundになったときにどのように実装するかとか決めたいですね - (void)localpush { NSLog(@"%s", __func__); UILocalNotification *notification = [[UILocalNotification alloc] init]; //5秒後に実行 notification.fi…

iOS7からバックグラウンドで定期的にフェッチ処理を実行

iOS 7 から追加された新しい Background Mode のひとつ OS 側が不定期(OS の判断で適切だと思われるタイミング(実際は、約 20 ~ 30 分に 1 回の割合))で呼び出してくれる Apple の紹介している例としては、 SNS 系アプリのタイムラインの事前取得 News 系…

NSTimeZone systemTimeZone,defaultTimeZone

zone 内容 defaultTimeZone 各アプリ毎に違う値を設定できる。 systemTimeZone システム環境設定で設定しているTimeZone localTimeZone defaultTimeZoneがValueObjectを返す(値が変わらない)のに対してlocalTimeZoneはdefaultTimeZoneへの参照を返す。defa…

プログレスバーを中央表示する

//button click - (IBAction)btn_Button:(UIButton *)sender { // プログレスバーを作成 progressView = [[UIProgressView alloc]initWithProgressViewStyle:UIProgressViewStyleDefault]; // 表示位置が画面中央になるように、調整しています。 CGSize pSiz…

NS~~のNSてなんぞや

NSとは、NeXTSTEPの事。 NEXTSTEP - Wikipedia

allocってなんぞや

「欲しいサイズのメモリを使えるようにする」という意味では、ほとんど差が無い のですが、その用意の仕方が違います。 変数で宣言する場合には、あらかじめソースを書く段階で、型とその大きさ(配列の 個数)が決っていなければなりません。 それだけで、…

今日の日付

// 日付の書式 NSDateFormatter *formatter = [[NSDateFormatter alloc]init]; [formatter setDateFormat:@"yyyy/MM/dd"]; // 今日の日付を表示する self.toDay.text = [formatter stringFromDate:[NSDate date]];

Gitとかにあるライブラリを使う

ライブラリ管理ツール CocoaPodsを使うらしい 参考サイト ソーシャル目覚ましを作るまで: カレンダーライブラリ~MNCalendarView~ http://www.iosjp.com/dev/archives/451 CocoaPods概要: CocoaPods は、ライブラリ管理ツールになります。 gitにあるライブラ…

CGRect, CGPointMake, CGSize の違い

CGRect 対象オブジェクトの位置とサイズの両方を管理するクラス CGPoint 対象オブジェクトの位置を管理するクラス CGSize 対象オブジェクトのサイズを管理するクラス

変数について

NSInteger 符号付き整数を表します。 この型の変数に小数を代入しても、自動的に整数に切り下げられます。 CGFloat 実数を表します。小数を表したいときはこちらを使います。 数値の後ろにfをつけて代入する場合があります。 3行目でNSIntergerと同様の3を代…

viewのロードタイミング

- (void)viewDidLoad { // Viewが表示される最初の1回だけ呼ばれる NSLog(@"viewDidLoad"); } - (void)viewWillAppear:(BOOL)animated { // Viewが表示される直前に呼ばれる NSLog(@"viewWillAppear"); } - (void)viewDidAppear:(BOOL)animated { // Viewの…

宣言はheaderファイルでするかmainファイルでするか

Objective-Cのソースコードは、ヘッダファイルと実装ファイル(メインファイル、メソッドファイル)、実行ファイルで構成されています。 ヘッダファイル ヘッダファイルは、拡張子が「.h」のファイルです。 実装ファイルで使用するための各種宣言を記述する…

格言

Objective-Cでレビューしたときの指摘事項メモ - まーぽんって誰がつけたの? Objective-Cでレビューしたときの指摘事項メモ - まーぽんって誰がつけたの?

localpushの文字数とデータサイズの制限

・送信データの合計が256バイトなので、256バイト全てを文字列に使えるわけではありません、検証結果では文字列に使用できたのは201byteでした。 表示の制限は iOS7 通知 制限 ①ステータスバー(画面上部) 全角35文字、半角64文字 ②ダイアログ(ロック画面に表…

UITabBarControllerを複数タブ追加する

articles of samekard: UITabBarController