まず、Xcode4.4から使えるObjective-Cの新しい書き方については 前の記事 をご参照ください。 Xcode4.4からMacアプリ開発で使える新しいリテラル 上記記事には書いていないのですがMac向けのアプリではこの他にも、 array[1] でNSArrayの要素にアクセスできる dictionary[key] でNSDictionaryの要素にアクセスできる @YES/@NO でもNSNumberのインスタンスを作れる といった変更があります。 こちらについては残念ながらiOSアプリ開発ではまだ利用できません。 ※ これらがターゲットがMacの場合には利用できてiOSの場合には利用できないということは、 @k_katsumi さんに教えてもらいました。 でも[]でアクセスする仕組み自体はiOSでも使えます! ところで、[]でインスタンスにアクセスするコードを書いたとき、これ
I upgraded to Xcode 6 beta 4 and now my App continuously crashes with the message Unknown class X in Interface Builder file. It crashes because supposedly Xcode can't find my custom classes that I have linked in my Storyboard but it shows that they are linked correctly in the Xcode interface. I'm positive everything is linked correctly. My only other option may be to delete the entire storyboard f
Objective-C でも Optional Xcode 6.3 で Objective-C の言語機能のアップデートがあり、 Optional と同等の機能を提供する __nullable と __nonnull が利用できるようになりました。端的に言うと Objective-C で値が空の状態がより明確に表現できるようになったということです。今回は、この機能をご紹介します。 Xcode 6.3 から利用可能 __nullable __nonnullで定義 nullable nonnull でも記述可能 __nullable と __nonnull __nullable は、NULL または nil が含まれる可能性がある場合に使用します。一方 __nonnull は NULL または nil が含まれる可能性がない場合(つまり、絶対に空ではない場合)に使用します。これらを使うと、例え
以前このサイトとブログに,何度かアラインメントに関する記事を書きました (サイト内関連ページ参照). そのせいか「アラインメント」で検索して来てくれる人が多いので, 過去の記事に加筆修正してこのページを新たに作成しました. 加筆した点は次のとおりです. アラインメントとメモリアクセス回数の関係をわかりやすくするため, (ほんの少し) 図を導入しました. 「データがアラインされていないとメモリアクセス回数が増える」 と言葉で説明しているサイトは多いのですが, 図で示しているところはまだ見たことありません. アラインされていないアドレスにデータを書き込む場合, 読み出しの場合以上にメモリアクセス回数がかかる可能性があることを追記しました. 以前は「複合データ型 (配列,構造体,共用体) のアラインメント」はほとんど自明のことだと思っていたので軽く流していましたが, 意外なことにこれを解説してい
書籍「実装パターン - Implementation Patterns」で紹介されている、読みやすいコードを書くための77の実装パターン。プログラマの仕事は、他のプログラマとの間でコミュニケーションを取ることである。マシンではない。ケント師 曰く実装パターンの礎実装パターンの礎・「価値」と「原則」実装パターンの礎・価値:コミュニケーション実装パターンの礎・価値:シンプル実装パターンの礎・価値:柔軟性実装パターンの礎・原則:結果の局所化実装パターンの礎・原則:繰り返しの最小化実装パターンの礎・原則:ロジックとデータの一体化実装パターンの礎・原則:対称性実装パターンの礎・原則:宣言型の表現実装パターンの礎・原則:変更頻度実装パターンの礎・そしてパターンへ実装パターンカテゴリパターン名ClassクラスClassクラス Simple Superclass Nameシンプルなスーパークラス名 Q
大きくは UIViewController の処理(Lifecycle methods)、UITableView 向けのデータソース/デリゲート、検索絞り込み、UISearchDisplayControllerのデリゲートから構成されている。 気になった部分をピックアップしてみる。 まず viewDidDisapear - (void)viewDidDisappear:(BOOL)animated { // save the state of the search UI so that it can be restored if the view is re-created self.searchWasActive = [self.searchDisplayController isActive]; self.savedSearchTerm = [self.searchDisplayCon
1. Unrivalled software Your hands are intricate and nuanced. Our software is too. Our hand tracking software captures all the subtlety and complexity of natural hand movements. It’s based on a decade of development and iteration, generations of research in artificial intelligence and the feedback of hundreds of thousands of developers. Fast, robust, accurate, and works on almost any computer.
プログラムがまだ不慣れな人が「プログラムちょっとわかるようになったけど、まだぜんぜんオブジェクト指向とかできてません」のように言ったり、ちょっと慣れた人が「このソース、ぜんぜんだめ。オブジェクト指向ができてない」にようなことを言ったり、まるで、オブジェクト指向ができてるかどうかがよいプログラムかどうかを表すことになってるようだ。 Javaのアルゴリズムの本に、「Javaなのにオブジェクト指向ができていない」のような書評がついているのを見たときには、お前は何を求めてるんだと思ったりもした。 そのようなオブジェクト指向は、窓から投げ捨てるべきだ。オブジェクト指向はプログラムのよしあしの基準にならない。 むだにHogeインタフェースとHogeImplクラスがあったり、むだにnewするだけのcreateメソッドがあったり、どこで値が設定されてるかわからないオブジェクトがひきまわされてたり、ソースコ
Demo of Web Speech API Speech Synthesis interface (Text to Speech) Here are some very simple demos based on the Web Speech API SpeechSynthesis Interface As of 2013-06-05, this is an experimental feature in the Google Chrome Canary browser (not the regular release version). To use it you must go to the chrome://flags settings page, enable experimental WebKit features and restart your browser. This
Learn how to design great apps and games that integrate seamlessly with Apple platforms. Human Interface Guidelines Learn essential information about platforms, foundations, patterns, components, inputs, and technologies. The HIG offers guidance and best practices for designing exceptional user experiences across all Apple platforms.
2017/05/12追記 この記事はだいぶ古い記事なのですがありがたいことにアクセスが多いです。ですがもし今swift3で書くのであれば以下のページを参考にした方がよいと思います。 非常に簡単に書けるようになっています。 >> Grand Central Dispatch Tutorial for Swift 3: Part 1/2 >> Grand Central Dispatch Tutorial for Swift 3: Part 2/2 >> [Swift 3] Swift 3時代のGCDの基本的な使い方 以下元の記事となります。 ==== こんにちは。きんくまです。 今回はスレッドのはなしです。 ふつう時間のかかる処理をそのままやってしまうと、アプリケーションの応答が止まってしまって、 「何これ、壊れてんの?」なんて状態になります。 UIなどの画面の更新はメインスレッドで行われて
カテゴリーとクラスエクステンションは、Objective-Cで使えるクラス拡張の方法です。 既存のクラスにメソッドを追加したりクラスの分割をしたりすることができるので、中級以上のObjective-Cユーザーには必須の機能です。 カテゴリーによるメソッド追加 カテゴリーを使うと、既存のクラスにメソッドを追加することができます。 自分でつくったクラスにメソッド追加することもできますし、システムのフレームワークの中のクラスに追加することもできます。 例えば、NSStringクラスに二つの新しいメソッドを付け加えた例を見てみましょう。 まず、追加メソッドのヘッダーファイルはこうなります。 // NSString+ToyshipMode.h @interface NSString (ToyshipMode) + (void)ToyshipMode1; - (void)ToyshipMode2; @
以前こんな記事を書きました。 Objective-Cのプロトコルとデリゲートのまとめ - $ cat /var/log/shin 現時点で、こんな場末のブログで唯一ブクマが多い記事なのですが、その文末で、 次は、カテゴリについて勉強したいと思います。 Objective-Cのプロトコルとデリゲートのまとめ - $ cat /var/log/shin なーんて書いてから、はや9ヶ月超。ようやくカテゴリについて調べる機会が来たので、まとめてみます。 座学編 クラスの基本 まず初めにクラスの基本を整理しておきます。 // ex1.h #import <Foundation/Foundation.h> @interface MyClass1 : NSObject - (void)publicMethod; @end // ex1.m #import "ex1.h" @implementation
ベトナムで開発を始めてはや4ヶ月目、田中です。 iOS7から追加されたUIViewControllerAnimatedTransitioningとUIViewControllerTransitioningDelegateの2つのプロトコルを使用して画面遷移のアニメーションをカスタムする方法を紹介します。 このようにいつものスライドして遷移するのではなく、好きなアニメーションで画面を遷移させることができます。 ViewController.m #import "ViewController.h" #import "AnimationController.h" @interface ViewController () <UIViewControllerTransitioningDelegate, UINavigationControllerDelegate> { AnimationContro
UIWebViewを使ったアプリとサーバーを組み合わせたシステムを開発するようなケースで。 サーバー側で正式な証明書が用意できていない段階で、テストしなければならないような時、 自己署名証明書をとりあえず無視したいことがあると思う。 合法な方法では(現時点では)不可能らしい。 一時的にテストを進めるため、undocumented な方法ではあるが、 以下のような方法がある。 How to ignore ssl certificate challenge with UIWebView and NSUrlRequest? - General discussion - MonoTouch Forums @interface NSURLRequest(SSL) + (BOOL)allowsAnyHTTPSCertificateForHost:(NSString *)host; @end @impl
iOS 6以前の「ねむスタ」ではこんな感じで各タブのビューを回転させるかさせないかを決めていた。 MyTabBarController.m - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation { if (self.tabBarController.selectedIndex==1) { return YES; } return NO; }仕様としては、左から2番目のタブだけ回転対応で、それ以外は回転しない。 なので、タブの selectedIndex が 1 の時だけ YES を返していた。 ここでは全部の”向き”について YES を返しているけど、回転できる”向き”は Info.plist(Xcode の TARGETS の Summary タブにある
なんか無性にゲームが作りたくなったのでブラウザで遊べる簡単なゲームを作っています。 今のところまだ2つだけですが、少しつづ種類を増やしていきたいです。 マインスイーパ ライフゲーム 久しぶりすぎて基本中の基本であるゲームループの実装すら忘れてました。 日本限定の標準地域メッシュを世界に拡張した世界メッシュという規格がある 普段、データ分析業務などで総務省が策定した標準地域メッシュ(JISX0410)を利用しています。この規格は日本でしか利用できないのですが漠然と定義を拡張して全世界で使えたりしないのかなと思って、いろいろ探してみたところ世界メッシュというものを発見しました。 一般社団法人世界メッシュ研究所 – Research Institute for World Grid Squares ブラウザで世界標準メッシュを利用してみたかったので自前で TypeScript でライブラリを開発
バックグラウンド処理を手軽に実行できる NSOperation クラスですがこのクラスをきちんと理解して使うには NSOperationQueue クラスについて理解する必要があります。 前回の記事で NSOperationQueue の使い方について説明しました。まだお読みでない方はこちらの記事を先に目を通しておくことをお勧めします。 NSOperationQueue スレッドと処理の関係 今回は NSOperation について NSURLConnection を使ったサーバ通信プログラムを例に説明していきます。 NSOperation には2つの実行モードが存在する NSOperation クラスには「非並列実行モード」と「並列実行モード」の2つの実行モードがあります。 非並列実行モードは処理の終了を NSOperationQueue に任せるのに対し、並列実行モードはプログラマが任
尚、今回のサンプルではカメラを使用するので、実機を利用できるようにしてください。 1.UIImagePickerControllerを使う UIImagePickerControllerの導入は非常に簡単です。一般的にUIImagePickerControllerは他のビューコントローラからモーダルビューとして表示します。まず、ViewController.hを開き、以下のように編集してください。 ViewController.h #import <UIKit/UIKit.h> @interface ViewController : UIViewController <UINavigationControllerDelegate, UIImagePickerControllerDelegate> @end UIImagePickerControllerを使用する場合、今回の呼び出し元となる
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く