apple開発

base64

Base64は、データを64種類の印字可能な英数字のみを用いて、それ以外の文字を扱うことの出来ない通信環境にてマルチバイト文字やバイナリデータを扱うためのエンコード方式 iOS7から NSDataクラスに標準メソッドとして追加された。 エンコード NSString* str…

バックグラウンドで継続して処理を実行する

フォアグランドでダウンロードなどの処理をおこなっている最中に、バックグラウンドに回ってしまうと、通常は処理が中断してしまう。中断しないようにするにはどうすればいいか? 10分程度、処理の継続を許可してもらうような趣旨の実装。 @implementation V…

ローカル通知

通知を表示する為に、初回起動時に承認を行う 通知機能を使う為には #import <UserNotifications/UserNotifications.h> が必要となる。 AppDelegate.m #import <UserNotifications/UserNotifications.h> - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { //初回起動時、ユ</usernotifications/usernotifications.h></usernotifications/usernotifications.h>…

UIPickerView でコンボボックスみたいな。

#import "ViewController.h" @interface ViewController () //PickerをStoryBordを使わずに生成するので、デリゲート用のプロトコルを事前に宣言しておく <UITextFieldDelegate,UIPickerViewDelegate,UIPickerViewDataSource> { UIPickerView *testPickerView; } @property (weak, nonatomic) IBOutlet UITextField *textField1</uitextfielddelegate,uipickerviewdelegate,uipickerviewdatasource>…

上部のステータスバーを非表示にする

//ViewController.m -(BOOL)prefersStatusBarHidden{ return YES; }

UITextView 初期表示で、先頭行が表示されない

目的のtextViewがAutoLayoutの対象になっており、viewDidLoadの後にtextViewの幅を調整するので、スクロールが動いてしまっていたようだ。 なので、レイアウト配置が終わった後のイベントで、スクロール位置を調整することにした。 -(void)viewDidLayoutSubv…

アプリ内でのフォームの分割表示

https://developer.apple.com/jp/documentation/ViewPG_iPhoneOS.pdf 【Swift】UISplitViewControllerの使い方。画面遷移(マスター部とディテーブル部) | はじはじアプリ体験記 iOS8から変更になったUISplitViewControllerについて調べてみた - Qiita ポッ…

フォーマット指定子 書式指定子

NSInteger は、"%zd" NSUInteger は、"%tu" 16進数 は、”%tx” NSInteger i = 1234; NSLog(@"i=%zd",i); 参考 http://d.hatena.ne.jp/tanaponchikidun/20120612/1339509661 http://decomo.info/wiki/programming/mac/nsstring_format_specifiers

ファイル出力(追記 append)

NSString* folder = NSSearchPathForDirectoriesInDomains(NSDocumentationDirectory, NSUserDomainMask, YES)[0]; NSString* filePath = [NSString stringWithFormat:@"%@/out.txt",folder ]; //ファイル名の取り出し NSString* folderName = [filePath las…

UIAlertController 同期処理

UIAlertController を使用した際の同期処理がうまくできない。 セマホを使っても、元々メインスレッド上で処理されているらしく、wait待ちすると、ポップアップすら止まってしまう。 どうも VBでいうところの、DoEvents方式しかないようだ。 .... [view pres…

NSError の使い方

呼ばれる側 + (BOOL)testMethod error:(NSError**)error{ __block NSError* responsError = nil; __block NSInteger httpStatus = 0; NSURLSessionDataTask* task = [session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse …

アイコンバッチ

アイコンバッチを表示する方法を検索すると以下の用法が表示される [UIApplication sharedApplication].applicationIconBadgeNumber = 5; この通りやっても、表示されなかった。iOS9からは通知に関する設定を行わないといけなくなったようだ。 IOS9からは、…

アイコン

iOS用のアイコンを設定してみたい。 適当なサイズのものを当てはめると、 〜 Assets.xcassets: The app icon set named "AppIcon" did not have any applicable content. ビルド実行で上記のようなメッセージ出てしまうので、正しいサイズのアイコンを適用す…

クラスのサンプル

// // Person.h // クラスの基本 // // Created by shodai on 2017/06/15. // Copyright © 2017年 Mycompany. All rights reserved. // #import <Foundation/Foundation.h> @interface Person : NSObject //この1行だけで、public なアクセサが生成されている(read/write) @property N</foundation/foundation.h>…

property ぷろぱてぃ

@property (nonatomic,copy) NSString* name; ———————atomic省略時のデフォルト。synchronizedでスレッドセーフにしたgetter,setterを生成します。 nonatomicスレッドセーフでない単純なgetter,setterを生成します。iOSではパフォーマンスの問題からほとんど…

配列 いろいろ

NSArrayからイテレータ的に値を取得 NSArray* bars = arrayWithObjects:bar1,bar2, nil]; NSEnumerator* eratorBar=[ bars objectEnumerator]; NSDictionary* aBar; while (aBar = [eratorBar nextObject]) { NSLog(@"%@", [aBar objectForKey:@"key1" ]); N…

segueを使わないで画面遷移

view1からview2に遷移する場合 ViewController1.m - (IBAction)btnPage2:(UIButton *)sender { UIStoryboard* myStoryboard = self.storyboard; ViewController2* viewController2 = [myStoryboard instantiateViewControllerWithIdentifier:@"view2"]; view…

UIViewController のライフサイクルについて

UIViewControllerのライフサイクル - Qiita にすばらしい説明があった viewDidUnload とかは、以前はあったようが、途中で消滅している viewDidUnloadがdeprecatedになった理由を考察 | Cyber Passion for iOS 参考 iOS のイベント駆動をライフサイクルイベ…

Unwind Segueによる画面遷移

戻り遷移の際に、判定を加えたい。 ネットのサンプルを見ると canPerformUnwindSegueAction を使って判定すれば良いように記述されていたが、試して見ると、例外が発生してしまう。 代わりに shouldPerformSegueWithIdentifier でならできた - (BOOL)shouldP…

UIDocumentInteractionController が iPadで有効にならない

Deployment device が iPhoneだと正常に起動するが、 Deployment device が iPadだと連携先のメニューが表示されない。 なんで? iPhoneとiPadで選択メニューの表示方法が異なる。 iPhoneの場合は、中央下に表示されるが、iPadの場合は、座標を指定しないと…

画面遷移

アプリ全体のイベント (〜Will〜は直前、〜Did〜は直後) application アプリが起動されたとき。AppDelegateに実装。 applicationWillResignActive applicationDidEnterBackground アプリがバックグランドになったとき。 一時的なデータ保存処理などを記述…

appleIDの複数運用

appleIDが異なる実機デバイスを使って、デバッグはできるか? できる。appleID毎に実機デバイス側での承認をすれば良い。 プロジェクトのSigninig のappleIDを後から変更することはできるか? ただ、変更しただけだと、Provisioning Profile に関するエラー…

アプリ間のファイル共有

App Extension に関するページ https://www.lifehacker.jp/2014/09/140930app_extension.html

Xcode

appleのページ Xcodeの概要: Xcodeの基本知識 https://developer.apple.com/jp/documentation/ToolsLanguages/Conceptual/Xcode_Overview/XcodeEssentials/XcodeEssentials.html#//apple_ref/doc/uid/TP40010215-CH1-SW1 Xcodeのショートカットコマンドを一…

AES で暗号化されたファイルの解凍

参考になりそうな記事 https://stackoverflow.com/questions/19044236/how-to-unzip-aes-encrypted-files-in-ios ここから、minizip を取得して利用するもの? GitHub - nmoinvaz/minizip: Minizip zlib contribution fork with latest bug fixes that suppo…

外部アプリの起動

[iOS] ディープリンク(Custom URL Scheme)でアプリを起動する | Developers.IO アプリケーション間通信

IOSデータの扱い

ファイルは、アプリ毎に管理されている。 4種類のフォルダが容易されている Documents/ユーザー側に見せるデータ Library/ユーザー側に見せないデータ Library/Application Support/ Library/Caches/一時的な保存用。任意のタイニングで削除されるかもしれな…

View Controller

View Controller の役割 https://developer.apple.com/jp/documentation/featuredarticles/ViewControllerPGforiPhoneOS/AboutViewControllers/AboutViewControllers.html#//apple_ref/doc/uid/TP40007457-CH2-SW1 iOS アプリの画面開発の基礎を理解する - A…

Xcode 8.2でiOS 10.3実機上でデバッグしたい

Xcode 8.2 は iOS10.2までの対応。iOS10.3まで対応しているXcode8.3は macOS Sierraにアップグレードしなくてはならない。自分のmacOSはSierraにはアップグレードしていない。 Xcode8.2で、iOS10.3.2 iPhone6Sの実機につないでデバッグしようとしたら以下の…

Objective-C あらかると

言語の特徴 言語仕様はCの完全上位互換 Cとは異なるObjective-Cに特有の部分は、@で始まるコンパイラディレクティブで明示され、オブジェクトのメソッド呼び出しは[]で囲まれたメッセージ式で行われる。 通常定義部を.hファイル、通常定義部を.hファイル 入…