top page | とりこのすすめ





2016年11月
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30      

カテゴリー

ピックアップ

最近のエントリー

最近のコメント

アーカイブ

Syndicate this site (XML)

Powered by
Movable Type 6.1.2

Copyright info@Mackers & D.S,
All rights reserved.

お問い合わせはこちらから。

2009年4月30日

Cocoaのエンコーディング

とりあえず一個題材を決めて勉強しています。

今やっているのは、テキストファイルをNSOpenPanelで選択してNSTextViewに表示し、さらにファイルへ書き出すというものです。

Cocoa-Javaでも似たようなことを以前やっていたので、なんとなく分かるのですが、読み込むテキストのエンコーディングについて良くわからなくてウェブで色々調べてました。


Cocoa-Javaの時は意識していたかどうか定かではないのですが、読み込むファイルのエンコーディングがUTF-8だったりSJISだったEUCだったり・・・と様々な場合、ちゃんと化けずに読めるのかな?と。

たぶん英数字しか入ってないファイルであれば読めてしまうんでしょうけど、2バイト文字の日本語とかが入っているとどうなるのやら・・・。


で、結論から言うと、化けるというか読み込んでくれません。

使ったメソッドはNSStringの+ (id)stringWithContentsOfFile:(NSString *) path usedEncoding:(NSStringEncoding *) enc error:(NSError **) errorです。

※頭に+が付いてるとクラスメソッド、-だとインスタンスメソッドだそうです。

リファレンスを見ると、読み込んだファイルのエンコーディングを教えてくれるようなので、なんでも嫌わずに読み込んでくれるのかと思いましたがだめでした。

これが使えると、ブラウザで言うところの自動判別みたいなものが出来て楽だと思うのですけど、なんだかちゃんと動きません。

それでウェブで調べてみると、Cocoaのエンコーディングはどうなっておるのだ? - Nothing Upstairsという記事を見つけました。


なるほどやっぱりダメなんですね。


ということで、読み込むファイルのエンコーディングが分からない時は、トライアンドエラーするしかないのですかね。

ブラウザとかテキストエディタとかの実装ってみんなそうしているだろうか。


良くわかりませんが、とりあえず+ (id)stringWithContentsOfFile:(NSString *) path encoding:(NSStringEncoding) enc error:(NSError **) errorを使うことにして、NSStringEncodingに片っ端からエンコーディングを指定していくしかないのかな。

合ってるのかね??


/*
 NSOpenPanel終了時の処理
*/
- (void)openPanelDidEnd:( NSOpenPanel * )panel returnCode:( NSInteger )code {
	
	NSString *string = nil;
	//NSStringEncoding encoding = 0;
	NSError *error;
	
	// 押下されたボタンの判定
	if( code == NSCancelButton ) {
		
		/* Cancelボタン時 */
		
		// 何もせず終了
		return;
	}
	
	//
	// とりあえず、SJISで読み込んでだめならUTF8で読み込む。それだダメならreturn
	//
		
	// 選択されたファイル名称を取得
	NSString *path = [ panel filename ];
		
	// エンコーディングにNSShiftJISStringEncodingを指定してファイルを読み込む
	string = [ NSString stringWithContentsOfFile:path encoding:NSShiftJISStringEncoding error:&error ];
		
	// 読み込めたか判定
	if( string == nil ) {
			
		/* 読み込めなかった場合 */
			
		// エンコーディングにNSUTF8StringEncodingを指定してファイルを読み込む
		string = [ NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:&error ];
			
		// 読み込めたか判定
		if ( string == nil ) {
				
			/* 読み込めなかった場合 */
				
			// エラー出力
			NSLog( [ error localizedDescription ] );
				
			return;
		}
	}
			
	// テキストエリアに読み込んだ内容を出力
	[ textView setString: string ];
}

投稿者 D.S : 17:02 | コメント (0) | トラックバック (0)




Cocoaリファレンス

だんだんとObjective-Cの[やら:に慣れてきました。


さて、クラスの仕様を調べたりするのに、Appleで公開されているリファレンスを見ます。

Appleのウェブページを見たり、Xcodeの製品ドキュメントから見ても良いのですが、Cocoa Browser Airというアプリケーションを使うと大変見やすいです。

できれば前回開いていたページを記憶しておいてくれるとうれしいのですが・・・。あと現バージョンでは検索ができないようです。


もう一つリファレンス関連でありがたいのが、Cocoa Break!さんで公開されている日本語訳です。

Mac OS X v10.5系はまだ完全ではないようですが、Foundationは揃っていますし、重宝することと思います。

これ大変な作業ですよ。素晴らしい。

投稿者 D.S : 14:18 | コメント (2) | トラックバック (0)




2009年4月29日

Cocoa-Objective-C始めました。

さてGWに入りました。

画策していた12連休は残念ながら失敗に終わりましたが、8連休ということでまずまずです。

しかし長期連休を取得できても、現在人生最大級でお金がないため、どっちにしろたいした遊びはできずに残念。

そんなわけで、ずっと以前からチャレンジしようと考えていたことに取り込むことにしました。


Cocoa-Objective-Cです。


遥か昔に、Cocoa Beiginnersというセクションで、Cocoa-Javaで作るMac OS Xアプリケーションについて書いていました。

書いていたと言うより、自分で勉強した内容を備忘録として載せていたようなものですが。


当時なぜCocoa-Javaを選んだかというと、Cocoa-Javaの情報があまり無かったので役立つかなと思ったのと、はっきり言ってObjective-CってMac OS Xアプリ専用のプログラミング言語と言っても過言ではない程ニッチ過ぎて、それならばメジャーな言語であるJavaを勉強しながら、Mac OS Xのアプリを作れれば幸せだなと思ったのが理由でした。


しかし時は過ぎ、Cocoa-JavaはAppleから見限られてしまいCocoa-Javaを追求する意味もなくなり、さらにiPhoneという素晴らしいデバイスが誕生し、そのアプリの開発のためにはObjective-Cが必須である昨今。


ならば本気でObjective-Cをがんばってみようじゃないか。


この不況な世の中。暇はあってもカネはない。

そんな時こそまさにうってつけの課題。

Macさえあれば、開発環境は全て無料で手に入ります。


やってやろうじゃないか!

そう意気込んでいる現在であります。


チョイチョイとコードを書いたりしてみてますけど、やっぱりこの文法慣れない。

C言語を知っていると割と簡単に習得できるとの評判ですが、文法がとにかく慣れない印象です。

[とか:とかたくさんあって、もー!みたいな。

あと、ラベルとかって概念もあったりして、どれがラベルでどれが引数なんだかパッと分からん!

ごちゃごちゃと文章のような文法です。

までも慣れなんでしょうけどね。


あ、そうそう。

ウェブだけを見てなんとかしようと思っていましたが、やっぱり紙媒体の参考書が手元にあると便利なので、下記、2つの本を買いました。

どちらも有名ですよね。著者さんはHMDTの木下さんです。



たのしいCocoaプログラミング[Leopard対応版]


自作アプリをApp Storeで世界に向けて販売できる!! iPhone SDKプログラミング大全 (MacPeople Books)


最終的にはiPhoneアプリを作りたいと思っているのですが、iPhone SDKプログラミング大全の方を見るのはまだ先ですかね。

Mac OS Xのアプリ制作にまずは慣れたいです。

投稿者 D.S : 16:18 | コメント (0) | トラックバック (0)




2009年4月20日

さくら'09 忍野八海編

先週に引き続き、4/18に山梨県の忍野八海へさくらを見に行ってきました。

忍野八海は初めてでしたが、観光地化されていてなかなか過ごしやすいところでした。


駐車は忍野八海入り口にあるお土産屋さん「ひのでや」に停めました。


30秒間手を入れていられないくらい冷たい・・・はずでしたが、全然普通でしたw


至る所にとうもろこしが干されていました。昔の人は、このとうもろこしを挽いて料理に使っていたそうです。


たくさんの淡水魚が泳いでいました。


中には黄色(金色?)のも。


藁葺き屋根の家が良い感じ。


日本名水百選に選ばれている水。軟水で非常に口当たりが良かった。


御釜池。面積は24平方mと小さいのですが、深さは7.5mもあります。


忍野八海に咲くさくら。


曇りなのが残念・・・。


忍野八海を後にし、鳴沢氷穴、富岳風穴に移動しました。

どちらも初めてで楽しかったのですが、特に印象に残ったのは鳴沢氷穴でした。


鳴沢氷穴入り口。


ここは溶岩トンネルと言われるところですが、なんと高さが91mしかありません!下は滑るし高さは無いしでかなり楽しいところですね〜。


「水曜どうでしょう」かと思うくらい楽しいところです。


中は0°。冷蔵庫です。


これだけ富岳風穴です。風穴でも氷柱はあります。


昼食は足柄古道万葉うどんでうどんを食べて、東名道の海老名SAでジャージーソフトクリームを食べて解散。

※忍野八海はiPhoneの電波入りましたが、鳴沢氷穴、富岳風穴、足柄古道万葉うどんでは全く入らず・・・。

投稿者 D.S : 15:44 | コメント (0) | トラックバック (1)




2009年4月19日

さくら'09 冨士霊園編

4/12に、毎年恒例、冨士霊園へさくらを見に行ってきました。

集合場所を中央道の談合坂SAにAM7:30〜8:00。冨士霊園にはAM9:00に設定しました。

思えば毎年冨士霊園には、昼頃からノコノコ向かって行ったため渋滞などは皆無でしたが・・・。


あり得ない。


AM7:00頃に家を出たら、八王子料金所付近の渋滞に加えて小仏トンネルの渋滞・・・。


下りのクセにナマイキだぞ!w


談合坂SAにはAM8:20頃に到着し、さらに冨士霊園にはAM10:00に到着してしまい(なぞ)ご迷惑をおかけ致しました。すみません・・・。


到着した冨士霊園のさくらはちょうど満開を迎えたところといった状態でとてもきれいでした。

ただ残念なことに、例年より早めに行き過ぎたか混雑がひどく、さくらを背景にクルマを撮ることができず残念・・・。


次の目的に移動途中、陸上自衛隊滝ヶ原駐屯地前に見事なさくらロードがあったので停車。

なにやら創立35周年記念行事が催されていたようで、戦車が走っていました。

実戦配備されている型ではないでしょうけどね。


最後は道の駅「どうし」に寄って、恒例のソフトクリームを頂いて解散。


※園内はちゃんとiPhoneの電波入りました。

投稿者 D.S : 20:25 | コメント (0) | トラックバック (0)




2009年4月16日

iPhoneフォトコンテスト

Apple主催で、iPhoneで撮影した写真のコンテストを開催するそうです。

部分引用:

iPhone フォトコンテスト 5月10日(日)1:00 p.m.

・WEBから登録ください。登録受付は前日までとさせていただきますが、
定員になり次第閉め切らせていだきます。
・写真はすべてiPhoneで撮影したものに限ります。
・iPhone用の写真アプリを使用していただいても構いません。
・Macによる撮影後の補正は不可です。
・写真の枚数は最大10枚とさせていただき、当日、iPhoneに入れてお持ちください。
(CDやDVDでの持ち込みも受け付けています。)
※ iPhoneの写真アルバムに入っている写真はご登録いただけません。
iPhone本体で写真ををお持ちいただく場合は必ずカメラロールの中に写真が入っている状態にしてください。

当日コンテスト会場へ来れる方、つまりApple Store銀座に来れる方というのが参加条件でもっとも敷居が高いと思われますが、それ以外はかなり気軽に参加できるような雰囲気です。

ぜひ参加してみてはいかがでしょうか。

投稿者 D.S : 17:01 | コメント (0) | トラックバック (0)




2009年4月11日

「おっぱい2枚ください」

4/18から全国で公開される映画「おっぱいバレー」。それに関してシネマトゥデイに面白い記事が掲載されていた。

部分引用:

 しかし、やはりその言葉を口にするのは恥ずかしい。映画『おっぱいバレー』のチケットを購入しようとした人から、「おっぱいというタイトルをチケット売り場で口にするのは恥ずかしい」というシャイな意見が配給会社に多数寄せられているそうだ。それを受け、現在チケット売り場では、同作品のチケットを購入する際「OPV(オーピーヴィ)のチケットください」と『おっぱいバレー』の頭文字を言うだけでチケットが購入できるよう配慮されており、シャイな人でも心置きなくチケットを入手できるようだ。


・・・確かにこれは恥ずかしい。


シミュレーションしてみたが口に出すのはなんとも抵抗がある。

気にし過ぎだろうか。

いやむしろ、この記事を見たせいで気になり始めてきた。


いざ窓口でチケットを購入しようとした際、どう考えても思わず口元が緩んでいる自分がいる。

素知らぬ顔でチケットを買うなんて、きっとできない。


チケットを売る方も大変だ。

「おっぱいバレー2枚ですね?」

これをいちいち言うのだろうか・・・。


「おっぱい」という単語をなんとか口に出さずに購入する方法として、記事では「OPV」表現が紹介されているが、これは逆に恥ずかしいのではないだろうか。

しかも「OPV」表現が窓口の人たち全てに浸透しているとも思えず、なんのこっちゃ分からずに「何ですか?」と聞き返されたあげく、結局顔を真っ赤にしながら「おっぱいバレー2枚ください・・・」と頼むことになってしまいそうだ。


これは最も悪いサイアクな状況だ。絶対に避けたい。


他には例えば、マクドナルドのクーポンのように、「おっぱいバレー」のページをiPhoneでキャプチャしておいて、それを窓口で見せる、と言った手法も思いついたがやはり不自然だ。むしろキモイ。


やはりここは素直に「おっぱいバレー2枚ください」と頼むのが良さそうだ。


くれぐれも緊張のあまり「バレー」を付け忘れ、「おっぱい2枚ください」などと意味不明なことを言わないように。

投稿者 D.S : 16:36 | コメント (0) | トラックバック (0)




2009年4月10日

Today's iPhone Picture


使用アプリ:Photo fx

投稿者 D.S@mobile : 15:31 | コメント (0) | トラックバック (0)