プログラマメモ2 - programmer no memo2

[宣伝]TokyoJinjya 0.1 - iPhoneアプリを公開しました。 2010/04/25

宣伝です。iPhoneアプリを公開しました。




インフォメーションのアイコンで一部素材を使わせてもらってます。
この場をかりて、お礼もうしあげます。


とてもお世話になった本

この本があったおかげでつくってみようという気になれました。かなり参考にさせてもらってます。
iPhoneアプリネットワーク+GPSプログラミング
4798024244


画面遷移(ナビゲーション)の部分でお世話になりました。
iPhoneプログラミングUIKit詳解リファレンス
京セラコミュニケーションシステム株式会社
4897978440


これから実装しようと思ってるページカール(PageCurl)の実装等
iPhoneSDK開発のレシピ
4798025798


レファレンスとしてパラパラめくりました。
Objective-C逆引きハンドブック
4863540515

[java]Integer.parseIntに全角の"0"を渡すと。 2010/04/19

javaです。
Integer.parseIntに全角の数字を渡すとその結果は?

変換できるみたいですね。
Integer.parseInt使って数値チェックを実装してたりしたらあやういことになるかも。

みんなさん、そんなことしてないよね!!
>_<!

内部ではCharacterクラスのdigitってのをよんでるみたい。

コード

public class Test_IntegerParseInt {

public static void main(String[] args) {
parseInt("0");
parseInt("a");
parseInt("0");// 全角
parseInt("一");
parseInt("①");
parseInt("001122");// 全角と半角まじり
}

static void parseInt(String s) {

boolean b = false;
int i = -1;
try {
i = Integer.parseInt(s);
b = true;
} catch (NumberFormatException e) {
// System.err.println(e.getMessage());
}
System.out.println("[" + s + "]:[" + i + "]:" + b);

}
}



結果
[0]:[0]:true
[a]:[-1]:false
[0]:[0]:true
[一]:[-1]:false
[①]:[-1]:false
[001122]:[1122]:true

とりあえず必要なiPhone向けアイコンは57x57pxのPNG 2010/04/11
2010/04/12

調べればすぐに調べられるけど、とりあえずメモ。

iphone向けアイコンは57x57pxPNG。
アプリケーションを起動した瞬間一瞬真っ黒になるけど、そこに指定した画像を表示できる。
スプラッシュウィンドウのかわり!?になるのかな。で、この指定する画像サイズは、縦が(480-20)=460px、横が320px
えーとなので320x460pxのpng

2010-04-13 追記
わざわざ縦のサイズ気にする必要ないかもしれない.....


参考
sonson@Picture&Software - [iPhone] 画面サイズ

で、iPhone Human Interface GuidelinesをながめてるとLaunch Imagesというようですね。

[cocoatouch]自動伸縮するスペースを置いてそのあとに置いたボタンを右よせにする。 2010/04/07

cocoatouchです。
ツールバーとかでボタンの右寄せどうするのかなーというわけで、ボタンとボタンの間にスペースを置いて解決。

遅々としてすまない進捗状態ですが、こつこつと。

/**
ボタンを右よせしたいときにつかう。
*/
+(UIBarButtonItem*) createSpacer {

UIBarButtonItem* spacer =
[[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil ] autorelease];
return spacer;
}



ネタもとは、

iPhoneプログラミングUIKit詳解リファレンス
京セラコミュニケーションシステム株式会社
4897978440

ツールバーにのっけたいときは、UISegmentedControlはUIBarButtonItemにして使う。 2010/04/06

ihponeです。cocoatouchです。いまいち、わかってない感がありますが、とりあえずメモ。
ツールバーにUISegmentedControlをのせたいときは、えーと、UIBarButtonItemにして、それをのせるって感じですかね。

+(UIBarButtonItem*)createSegmentedButton: (NSArray*)titles target:(id)target selector:(SEL)selector {

UISegmentedControl* segment = [[[UISegmentedControl alloc] initWithItems:titles]autorelease];
// この設定で状態を残さない
segment.momentary = YES;
segment.frame = CGRectMake(0, 0, 100, 30);

[segment addTarget:target action:selector forControlEvents:UIControlEventValueChanged];
UIBarButtonItem* button = [[[UIBarButtonItem alloc]initWithCustomView:segment]autorelease];
return button;

}

ナビゲーションのツールバーの可視状態のコントロールにviewWillAppearを使うのはどうだろう。 2010/04/04

iphone(ipod touch)です。cocoatouchです。
画面遷移にUINavigationControllerを使っていて、ある画面にはツールバーをだしたいなとのコントロールをどうしようかと悩んでます。で、遷移した画面で発生するイベントで呼ばれるviewWillAppearをオーバライドして、ツールバーをみせたりかくしたりするようにしてみました。

以下コード。

- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
self.navigationController.toolbarHidden = YES;// ツールバー表示する場合はNO
}


とりあえずこのコードで目的は達成できそうです。

参考
UIViewの-viewWillAppear:はsuperの呼び出しを忘れずに - リンゴの水やり?(はてな)


iPhoneプログラミングUIKit詳解リファレンス
京セラコミュニケーションシステム株式会社
4897978440


角度から東西南北を求める その2 - 北北西へ進路をとれはヒッチコックだったと思う。 2010/04/02

Javaです。角度を指定してそこから東西南北を求めます。0度を北として考えてます。
iphoneとかで地図上の2点間から角度を求めてそこから東西南北を求めることができるかしらという試みのためです。
16分割です。

方位 - Wikipedia
sub -= Math.floor(sub / 360.0) * 360.0; - Flashゲーム講座&ASサンプル集【角度の計算について】

public class AAAA {

public static void main(String[] args) {

for (double d = -90; d <= 361; d+=0.5) {
System.out.printf("%.2f:%s %n", d, 東西南北を求める2(d));
}
}
static String 東西南北を求める2(double d角度) {
final double D = 22.5;
final double D2 = 22.5 / 2;
double d= d角度 + D2;// 指定された角度を中心として考えたため
d -= Math.floor(d / 360.0) * 360.0;

final String[] s = { "北", "北北東", "北東", "東北東", "東", "東南東", "南東", "南南東", "南",
"南南西", "南西", "西南西", "西", "西北西", "北西", "北北西" };
int i = (int)(d / D);
return s[i];
}

}



結果長いけど

-90.00度:方位(西)
-80.00度:方位(西)
-70.00度:方位(西北西)
-60.00度:方位(西北西)
-50.00度:方位(北西)
-40.00度:方位(北西)
-30.00度:方位(北北西)
-20.00度:方位(北北西)
-10.00度:方位(北)
0.00度:方位(北)
10.00度:方位(北)
20.00度:方位(北北東)
30.00度:方位(北北東)
40.00度:方位(北東)
50.00度:方位(北東)
60.00度:方位(東北東)
70.00度:方位(東北東)
80.00度:方位(東)
90.00度:方位(東)
100.00度:方位(東)
110.00度:方位(東南東)
120.00度:方位(東南東)
130.00度:方位(南東)
140.00度:方位(南東)
150.00度:方位(南南東)
160.00度:方位(南南東)
170.00度:方位(南)
180.00度:方位(南)
190.00度:方位(南)
200.00度:方位(南南西)
210.00度:方位(南南西)
220.00度:方位(南西)
230.00度:方位(南西)
240.00度:方位(西南西)
250.00度:方位(西南西)
260.00度:方位(西)
270.00度:方位(西)
280.00度:方位(西)
290.00度:方位(西北西)
300.00度:方位(西北西)
310.00度:方位(北西)
320.00度:方位(北西)
330.00度:方位(北北西)
340.00度:方位(北北西)
350.00度:方位(北)
360.00度:方位(北)
370.00度:方位(北)
380.00度:方位(北北東)
390.00度:方位(北北東)
400.00度:方位(北東)
410.00度:方位(北東)
420.00度:方位(東北東)
430.00度:方位(東北東)
440.00度:方位(東)
450.00度:方位(東)


北北西に進路を取れ 50周年記念 スペシャル・エディション [DVD]
B002PHBIDE

東西南北 方位を求める - 北北西へ進路をとれ 2010/04/01

Javaです。
えーと、方位(方角)を求めてみることにしました。が、しかし、あいまいな知識とあいまいな努力でよくわからずコード書きました。
360度をこえると全部北に変換。

以下のような感じ

public class AAAA {

public static void main(String[] args) {

for (double d = 0; d <= 361; d+=0.5) {
System.out.printf("%.1f:%s %n", d, 東西南北を求める(d));
}
}

static String 東西南北を求める(double d) {
final double D = 22.5;

String[] s = { "北", "北北東", "北東", "東北東", "東", "東南東", "南東", "南南東", "南",
"南南西", "南西", "西南西", "西", "西北西", "北西", "北北西" };
// 360越えたら全部北
if ((360.0 - (D / 2)) < d)
return s[0];
d = d + (D / 2);

int i = (int)(d / D);
return s[i];
}
}



そして結果、かなり長いけど。
0.0:北
0.5:北
1.0:北
1.5:北
2.0:北
2.5:北
3.0:北
3.5:北
4.0:北
4.5:北
5.0:北
5.5:北
6.0:北
6.5:北
7.0:北
7.5:北
8.0:北
8.5:北
9.0:北
9.5:北
10.0:北
10.5:北
11.0:北
11.5:北北東
12.0:北北東
12.5:北北東
13.0:北北東
13.5:北北東
14.0:北北東
14.5:北北東
15.0:北北東
15.5:北北東
16.0:北北東
16.5:北北東
17.0:北北東
17.5:北北東
18.0:北北東
18.5:北北東
19.0:北北東
19.5:北北東
20.0:北北東
20.5:北北東
21.0:北北東
21.5:北北東
22.0:北北東
22.5:北北東
23.0:北北東
23.5:北北東
24.0:北北東
24.5:北北東
25.0:北北東
25.5:北北東
26.0:北北東
26.5:北北東
27.0:北北東
27.5:北北東
28.0:北北東
28.5:北北東
29.0:北北東
29.5:北北東
30.0:北北東
30.5:北北東
31.0:北北東
31.5:北北東
32.0:北北東
32.5:北北東
33.0:北北東
33.5:北北東
34.0:北東
34.5:北東
35.0:北東
35.5:北東
36.0:北東
36.5:北東
37.0:北東
37.5:北東
38.0:北東
38.5:北東
39.0:北東
39.5:北東
40.0:北東
40.5:北東
41.0:北東
41.5:北東
42.0:北東
42.5:北東
43.0:北東
43.5:北東
44.0:北東
44.5:北東
45.0:北東
45.5:北東
46.0:北東
46.5:北東
47.0:北東
47.5:北東
48.0:北東
48.5:北東
49.0:北東
49.5:北東
50.0:北東
50.5:北東
51.0:北東
51.5:北東
52.0:北東
52.5:北東
53.0:北東
53.5:北東
54.0:北東
54.5:北東
55.0:北東
55.5:北東
56.0:北東
56.5:東北東
57.0:東北東
57.5:東北東
58.0:東北東
58.5:東北東
59.0:東北東
59.5:東北東
60.0:東北東
60.5:東北東
61.0:東北東
61.5:東北東
62.0:東北東
62.5:東北東
63.0:東北東
63.5:東北東
64.0:東北東
64.5:東北東
65.0:東北東
65.5:東北東
66.0:東北東
66.5:東北東
67.0:東北東
67.5:東北東
68.0:東北東
68.5:東北東
69.0:東北東
69.5:東北東
70.0:東北東
70.5:東北東
71.0:東北東
71.5:東北東
72.0:東北東
72.5:東北東
73.0:東北東
73.5:東北東
74.0:東北東
74.5:東北東
75.0:東北東
75.5:東北東
76.0:東北東
76.5:東北東
77.0:東北東
77.5:東北東
78.0:東北東
78.5:東北東
79.0:東
79.5:東
80.0:東
80.5:東
81.0:東
81.5:東
82.0:東
82.5:東
83.0:東
83.5:東
84.0:東
84.5:東
85.0:東
85.5:東
86.0:東
86.5:東
87.0:東
87.5:東
88.0:東
88.5:東
89.0:東
89.5:東
90.0:東
90.5:東
91.0:東
91.5:東
92.0:東
92.5:東
93.0:東
93.5:東
94.0:東
94.5:東
95.0:東
95.5:東
96.0:東
96.5:東
97.0:東
97.5:東
98.0:東
98.5:東
99.0:東
99.5:東
100.0:東
100.5:東
101.0:東
101.5:東南東
102.0:東南東
102.5:東南東
103.0:東南東
103.5:東南東
104.0:東南東
104.5:東南東
105.0:東南東
105.5:東南東
106.0:東南東
106.5:東南東
107.0:東南東
107.5:東南東
108.0:東南東
108.5:東南東
109.0:東南東
109.5:東南東
110.0:東南東
110.5:東南東
111.0:東南東
111.5:東南東
112.0:東南東
112.5:東南東
113.0:東南東
113.5:東南東
114.0:東南東
114.5:東南東
115.0:東南東
115.5:東南東
116.0:東南東
116.5:東南東
117.0:東南東
117.5:東南東
118.0:東南東
118.5:東南東
119.0:東南東
119.5:東南東
120.0:東南東
120.5:東南東
121.0:東南東
121.5:東南東
122.0:東南東
122.5:東南東
123.0:東南東
123.5:東南東
124.0:南東
124.5:南東
125.0:南東
125.5:南東
126.0:南東
126.5:南東
127.0:南東
127.5:南東
128.0:南東
128.5:南東
129.0:南東
129.5:南東
130.0:南東
130.5:南東
131.0:南東
131.5:南東
132.0:南東
132.5:南東
133.0:南東
133.5:南東
134.0:南東
134.5:南東
135.0:南東
135.5:南東
136.0:南東
136.5:南東
137.0:南東
137.5:南東
138.0:南東
138.5:南東
139.0:南東
139.5:南東
140.0:南東
140.5:南東
141.0:南東
141.5:南東
142.0:南東
142.5:南東
143.0:南東
143.5:南東
144.0:南東
144.5:南東
145.0:南東
145.5:南東
146.0:南東
146.5:南南東
147.0:南南東
147.5:南南東
148.0:南南東
148.5:南南東
149.0:南南東
149.5:南南東
150.0:南南東
150.5:南南東
151.0:南南東
151.5:南南東
152.0:南南東
152.5:南南東
153.0:南南東
153.5:南南東
154.0:南南東
154.5:南南東
155.0:南南東
155.5:南南東
156.0:南南東
156.5:南南東
157.0:南南東
157.5:南南東
158.0:南南東
158.5:南南東
159.0:南南東
159.5:南南東
160.0:南南東
160.5:南南東
161.0:南南東
161.5:南南東
162.0:南南東
162.5:南南東
163.0:南南東
163.5:南南東
164.0:南南東
164.5:南南東
165.0:南南東
165.5:南南東
166.0:南南東
166.5:南南東
167.0:南南東
167.5:南南東
168.0:南南東
168.5:南南東
169.0:南
169.5:南
170.0:南
170.5:南
171.0:南
171.5:南
172.0:南
172.5:南
173.0:南
173.5:南
174.0:南
174.5:南
175.0:南
175.5:南
176.0:南
176.5:南
177.0:南
177.5:南
178.0:南
178.5:南
179.0:南
179.5:南
180.0:南
180.5:南
181.0:南
181.5:南
182.0:南
182.5:南
183.0:南
183.5:南
184.0:南
184.5:南
185.0:南
185.5:南
186.0:南
186.5:南
187.0:南
187.5:南
188.0:南
188.5:南
189.0:南
189.5:南
190.0:南
190.5:南
191.0:南
191.5:南南西
192.0:南南西
192.5:南南西
193.0:南南西
193.5:南南西
194.0:南南西
194.5:南南西
195.0:南南西
195.5:南南西
196.0:南南西
196.5:南南西
197.0:南南西
197.5:南南西
198.0:南南西
198.5:南南西
199.0:南南西
199.5:南南西
200.0:南南西
200.5:南南西
201.0:南南西
201.5:南南西
202.0:南南西
202.5:南南西
203.0:南南西
203.5:南南西
204.0:南南西
204.5:南南西
205.0:南南西
205.5:南南西
206.0:南南西
206.5:南南西
207.0:南南西
207.5:南南西
208.0:南南西
208.5:南南西
209.0:南南西
209.5:南南西
210.0:南南西
210.5:南南西
211.0:南南西
211.5:南南西
212.0:南南西
212.5:南南西
213.0:南南西
213.5:南南西
214.0:南西
214.5:南西
215.0:南西
215.5:南西
216.0:南西
216.5:南西
217.0:南西
217.5:南西
218.0:南西
218.5:南西
219.0:南西
219.5:南西
220.0:南西
220.5:南西
221.0:南西
221.5:南西
222.0:南西
222.5:南西
223.0:南西
223.5:南西
224.0:南西
224.5:南西
225.0:南西
225.5:南西
226.0:南西
226.5:南西
227.0:南西
227.5:南西
228.0:南西
228.5:南西
229.0:南西
229.5:南西
230.0:南西
230.5:南西
231.0:南西
231.5:南西
232.0:南西
232.5:南西
233.0:南西
233.5:南西
234.0:南西
234.5:南西
235.0:南西
235.5:南西
236.0:南西
236.5:西南西
237.0:西南西
237.5:西南西
238.0:西南西
238.5:西南西
239.0:西南西
239.5:西南西
240.0:西南西
240.5:西南西
241.0:西南西
241.5:西南西
242.0:西南西
242.5:西南西
243.0:西南西
243.5:西南西
244.0:西南西
244.5:西南西
245.0:西南西
245.5:西南西
246.0:西南西
246.5:西南西
247.0:西南西
247.5:西南西
248.0:西南西
248.5:西南西
249.0:西南西
249.5:西南西
250.0:西南西
250.5:西南西
251.0:西南西
251.5:西南西
252.0:西南西
252.5:西南西
253.0:西南西
253.5:西南西
254.0:西南西
254.5:西南西
255.0:西南西
255.5:西南西
256.0:西南西
256.5:西南西
257.0:西南西
257.5:西南西
258.0:西南西
258.5:西南西
259.0:西
259.5:西
260.0:西
260.5:西
261.0:西
261.5:西
262.0:西
262.5:西
263.0:西
263.5:西
264.0:西
264.5:西
265.0:西
265.5:西
266.0:西
266.5:西
267.0:西
267.5:西
268.0:西
268.5:西
269.0:西
269.5:西
270.0:西
270.5:西
271.0:西
271.5:西
272.0:西
272.5:西
273.0:西
273.5:西
274.0:西
274.5:西
275.0:西
275.5:西
276.0:西
276.5:西
277.0:西
277.5:西
278.0:西
278.5:西
279.0:西
279.5:西
280.0:西
280.5:西
281.0:西
281.5:西北西
282.0:西北西
282.5:西北西
283.0:西北西
283.5:西北西
284.0:西北西
284.5:西北西
285.0:西北西
285.5:西北西
286.0:西北西
286.5:西北西
287.0:西北西
287.5:西北西
288.0:西北西
288.5:西北西
289.0:西北西
289.5:西北西
290.0:西北西
290.5:西北西
291.0:西北西
291.5:西北西
292.0:西北西
292.5:西北西
293.0:西北西
293.5:西北西
294.0:西北西
294.5:西北西
295.0:西北西
295.5:西北西
296.0:西北西
296.5:西北西
297.0:西北西
297.5:西北西
298.0:西北西
298.5:西北西
299.0:西北西
299.5:西北西
300.0:西北西
300.5:西北西
301.0:西北西
301.5:西北西
302.0:西北西
302.5:西北西
303.0:西北西
303.5:西北西
304.0:北西
304.5:北西
305.0:北西
305.5:北西
306.0:北西
306.5:北西
307.0:北西
307.5:北西
308.0:北西
308.5:北西
309.0:北西
309.5:北西
310.0:北西
310.5:北西
311.0:北西
311.5:北西
312.0:北西
312.5:北西
313.0:北西
313.5:北西
314.0:北西
314.5:北西
315.0:北西
315.5:北西
316.0:北西
316.5:北西
317.0:北西
317.5:北西
318.0:北西
318.5:北西
319.0:北西
319.5:北西
320.0:北西
320.5:北西
321.0:北西
321.5:北西
322.0:北西
322.5:北西
323.0:北西
323.5:北西
324.0:北西
324.5:北西
325.0:北西
325.5:北西
326.0:北西
326.5:北北西
327.0:北北西
327.5:北北西
328.0:北北西
328.5:北北西
329.0:北北西
329.5:北北西
330.0:北北西
330.5:北北西
331.0:北北西
331.5:北北西
332.0:北北西
332.5:北北西
333.0:北北西
333.5:北北西
334.0:北北西
334.5:北北西
335.0:北北西
335.5:北北西
336.0:北北西
336.5:北北西
337.0:北北西
337.5:北北西
338.0:北北西
338.5:北北西
339.0:北北西
339.5:北北西
340.0:北北西
340.5:北北西
341.0:北北西
341.5:北北西
342.0:北北西
342.5:北北西
343.0:北北西
343.5:北北西
344.0:北北西
344.5:北北西
345.0:北北西
345.5:北北西
346.0:北北西
346.5:北北西
347.0:北北西
347.5:北北西
348.0:北北西
348.5:北北西
349.0:北
349.5:北
350.0:北
350.5:北
351.0:北
351.5:北
352.0:北
352.5:北
353.0:北
353.5:北
354.0:北
354.5:北
355.0:北
355.5:北
356.0:北
356.5:北
357.0:北
357.5:北
358.0:北
358.5:北
359.0:北
359.5:北
360.0:北
360.5:北
361.0:北
361.5:北
362.0:北