[SDK]iPhoneアプリ開発初心者質問箱37[touch][iPad]
1 :
名称未設定 :
2014/02/03(月) 21:51:25.97 ID:01Kc9b180 iPhone, iPod touch用アプリケーションの開発を始めたばかりの初心者向け質問スレ。
■質問する前に■
1. 質問は日本語もしくはObjective-Cで
質問に質問で返されても逆切れしない。それは質問の仕方が悪いってことだよ。
2. どういう内容であれレスをもらったら報告とお礼の言葉を忘れずに。
回答者は自分の時間を使って親切で回答してくれています。
3. 回答者は自分も初心者であった事を忘れずに。
4. マルチポスト(複数のスレに同じ質問を書込むこと)は厳禁!
5. 質問は可能な限り具体的に。
ただ「エラーが出ます」ではエスパーかスタンド使いでなければ答えられません。
エラー内容をちゃんと書きましょう。
6. わからない部分のコードをコピペすると手っ取り早いです。
7. このスレは無料プログラミング教室ではありません。
「○○の仕方を教えてください」という質問はなるべく避けてください。
「自分で調べたけどわからなかった事」を質問するというスタンスを忘れずに。
8. バグを安易にOSや開発環境のせいにしない。
自分の知識の無さを棚に上げて人のせいにするなんて百年早い。
■関連スレ
iOSアプリ 個人開発者の雑談スレ20
http://anago.2ch.net/test/read.cgi/mac/1390019563 【脱獄】iPhoneのJailbreakアプリ開発スレ
http://anago.2ch.net/test/read.cgi/mac/1337945208 ※前スレ
[SDK]iPhoneアプリ開発初心者質問箱36[touch][iPad]
http://anago.2ch.net/test/read.cgi/mac/1386586315
2 :
名称未設定 :2014/02/03(月) 22:17:08.46 ID:raDfHluVP
9.ストアに個人名を出したくないのだがどうすればいいか。 →どうにもできない。個人で出す場合は個人名が必ず出る。イヤなら法人で。 10.Windowsで開発できないのか? →できない。必ずMacとXcodeが必要 11.必要なスペックはどれぐらいが良いのか?MacBookAirで十分? →2010年以降に発売されたMacならスペック的に十分。メモリは4G以上あると良い。 12.Storyboardは必須になるの? →Storyboardナシでもアプリは開発できる。しかしAutolayoutなどStoryboard/Interfacebuilderが無いと 開発しづらかったり、今後デバイスが増えることを考慮するとなれていた方が良い。
3 :
名称未設定 :2014/02/03(月) 22:56:27.39 ID:raDfHluVP
13.書籍を買って勉強したい。オススメの書籍は?
→まずはAppleの公式ドキュメントを読む。解らない単語をググるなどまずはネット情報でやってみる。
その後、大きめの書店へ幾度か行って手にとって確認する。なるべくAmazonのレビューは鵜呑みにはしないで自分にあった書籍を買う。
14.iPad専用アプリを作るが実機が必要か、iPhoneしかもってない
→実機はあった方が良い。
15.TitaniumStudio、PhoneGap、Monoとかどーよ?
→便利だし、Android向けも踏まえればアリだけど、本格的なアプリを作ったり最新技術対応となるとどうしてもObjective-C。
16.アプリが儲かったら確定申告しなくてはいけないの?
→有料アプリでも無料で広告収入でも、年間20万円を越える売上があれば確定申告をする。
扶養に入っている場合は扶養者にきいてみる。全くの始めてでも早いうちなら税務署の無料相談があるので利用する。
***万円以下なら税務署は相手しないから無問題という自己判断は大間違い。不安なら最寄りの税務署へ問い合わせ。
17.おすすめのオープンソースライブラリを教えて
→基本は自分で探す。
ttps://www.cocoacontrols.com 、
ttps://github.com などで検索すると良い。
18.アプリを申請したのにリジェクトされた、良い対策は無いか
→レビューア(審査する人)ごとに対応が異なるため具体的な策をアドバイスするのは難しい。
ググって同様のリジェクト理由・対処が無いか調べて手探りでやっていくのが現実。
4 :
名称未設定 :2014/02/03(月) 23:59:56.61 ID:m6/7PGwZ0
テンプレ続きあったのかthx
5 :
名称未設定 :2014/02/04(火) 08:40:28.76 ID:zES3buFR0
まとめサイト転載禁止
6 :
名称未設定 :2014/02/04(火) 10:39:14.65 ID:35ZR5OgMP
>>3 13.は書くスペース無いせいかちょっと乱暴だな、偏るのも何だがとりあえずのオススメ書いてみる。
※AppleDeveloper ドキュメント日本語版
https://developer.apple.com/jp/devcenter/ios/library/japanese.html ↑解りにくいところがあるが一通り読んでおくべき。最新フレームワークなどは和訳されるのが(ものすごく)遅いので原文読む
[Objective-C]
※Objective-Cの絵本、入門 objective-C ← 全くの初心者向け。でもCやJavaぐらいは触ってないとつらい。
※詳解 Objective-C 2.0 第3版 著者:荻原剛志 ←鉄板ともいうべき書籍。Objective-Cの言語仕様調べるならこれ。辞書として。
※エキスパートObjective-Cプログラミング iOS/OS Xのメモリ管理とマルチスレッド 著者:坂本一樹 ←ARC、Blocks、GCDの勉強用に。
※Effective Objective-C 2.0 著者:Matt Galloway ← 詳解〜とエキスパート〜を更に突っ込んだ実用書的なものとして。
[Xcode , iOS]
※詳細! Objective-C iPhoneアプリ開発 入門ノート Xcode5+iOS7対応 著者:大重 美幸 ← Xcode5、iOS7の扱い方をまんべんなく扱っている。
※上を目指すプログラマーのためのiPhoneアプリ開発テクニック iOS 7編 ← ググれば出てくる内容が多いんだけど、iOS7最新機能を通り一遍知りたい時におすすめ
※iOSデバッグ&最適化技法―for iPad/iPhone 著者:國居貴浩 ←やや難しい内容ではあるがデバッグでつまづかない為にも勉強しておくと良い
※iOS 7デザインスタンダード 最新のフラットデザインに対応-iPhoneに最適なUI・UXを徹底的に解説! ←開発者がUIデザインについて知るには使える一冊。
※iPhoneアプリ開発のコツとツボ35 著者:國居貴浩 ←iOS7には未対応ではあるが、UIView、UIViewControllerなど詳解があって勉強になる。
※iOS開発におけるパターンによるオートマティズム 、Dynamic Objective-C 著者:木下誠 ← iOS、Objective-C向けデザインパターンなどを勉強したい方向け
CoreData、CoreGraphics、CoreAnimationなども扱った書籍もあるけど、初心者スレなので割愛
7 :
名称未設定 :2014/02/04(火) 10:45:11.46 ID:35ZR5OgMP
ざざっと手持ちの書籍から偏らないようオススメ書いてみたけれど、 「iOS 書籍 おすすめ」でググると、より突っ込んだブログなどがヒットするからそっちを見た方がいーねw
8 :
名称未設定 :2014/02/04(火) 13:41:18.36 ID:WiX8Fw3U0
すみません初心者の質問なのですが、Textviewに画像を置いて改行はできるようになったのですが文字と認識されなくてスクロールの対象になりません。何か良い方法ご存知でしたら教えて頂けませんか。宜しくお願いします。。
9 :
名称未設定 :2014/02/04(火) 13:55:59.36 ID:P6+vbOux0
>Textviewに画像を置いて改行はできるようになった マジで? どうやって置いたの?
10 :
名称未設定 :2014/02/04(火) 14:04:00.82 ID:WiX8Fw3U0
>>9 置いたと言うかTextview内に空白を作りそこに画像を入れて同時に改行等がされるようにしただけです。ニュアンスおかしくてすみませんw
11 :
名称未設定 :2014/02/04(火) 14:18:46.06 ID:QI/T5kK00
Twitter投稿機能の実装はしたんだけどやっぱり廃止しようかと考えてます。 今後復活させるかもしれないのでボタンだけ非表示にして 処理自体はそのまま残そうかと思うんですが こういう対応ってアップルの審査で問題視されたりってありますかね? ソーシャルライブラリ使ってるのに投稿機能が備わってないみたいな指摘が あったら怖いなと。
12 :
名称未設定 :2014/02/04(火) 14:43:43.26 ID:P6+vbOux0
>>10 その処理は回り込みって言うんだが、普通はexclusionPaths使うんじゃないかな。
画像がUIImageViewだとして、こんな感じじゃね?
textView.textContainer.exclusionPaths = [NSArray arrayWithObject:[UIBezierPath bezierPathWithRect:imageView.frame]];
13 :
名称未設定 :2014/02/04(火) 14:56:13.19 ID:WiX8Fw3U0
14 :
名称未設定 :2014/02/04(火) 23:57:17.13 ID:XCVamxheP
ストーリーボードについて聞かせて下さい。 ストーリーボードで、モーダルであるビューコントローラに遷移します。 そのビューコントローラは、タイトルや完了ボタンを置くためにナビゲーションバーはありますが プッシュ等でさらに画面遷移をしたりせずに、1画面だけで完結するモーダルの操作を行うためのビューコントローラです。 これをストーリーボードで置こうとしたら ナビゲーションコントローラを置いて、ルートをそのビューコントローラに繋ぎ、ナビゲーションコントローラに対して、元の画面からモーダルでセグエを設定する で出来ますが、 モーダルは1画面しかないのにナビゲーションコントローラがストーリーボードで間に入って邪魔 元の画面のprepareForSegue:で目的のビューコントローラにnavigationControllerを経由して辿るのが面倒 なので 普通のビューコントローラにナビゲーションコントローラを配置してナビゲーションコントローラを不要にしたいのですが こうするとナビゲーションコントローラを使ったときと違い ステータスバーがナビゲーションバーと同じ色にならない →backgroundColorをナビゲーションバーと同じにしたUIViewをステータスバーのに重ねて配置? テーブルビューをいっぱいに配置したとき、テーブルビューがナビゲーションバーの下に隠れる →contentInsetを手動で設定? という問題が出てきたのですがどう解決するのが一番よいでしょうか
15 :
名称未設定 :2014/02/05(水) 01:04:55.81 ID:ov2UPyx60
>>14 >普通のビューコントローラにナビゲーションコントローラを配置して
ナビゲーションバーを配置してだと思うけど、IBで見た目が違うんだからUINavigationControllerでいろいろやっているのはわかることだろう
ちまちまそれに合わせるか、または、違うんだからUINavigationControllerでというのだったら、言うほど邪魔というわけでもないのでUINavigationControllerを使うな
仮に他人が見た場合になんかいろいろちまちまやっている意味があるのかと思うだろうし。他人に見られることも無いんだったら好きにすればいいと思うけど
16 :
名称未設定 :2014/02/05(水) 13:52:22.43 ID:RN4u13cd0
質問させて下さい。 NSRunLoopを使ってtransFormの変数timerでキャラを動かしているメソッドを呼び出し続けているのですが、 バックグラウンドになった時に timer.paused = YES; として中断し、フォアグラウンドで timer.paused = NO; として中断と再開をしているのですが再開した時にキャラがワープしてしまいます。 pausedはターゲットへの通知を中断する物なので他の処理が必要なのでしょうか?
17 :
名称未設定 :2014/02/05(水) 17:25:28.42 ID:nGrSl6vB0
>>16 applicationWillEnterForeground: が呼ばれてから再描画までタイムラグがあるのでワープしてるように見える。
少し遅れてpaused = NO すればいい。というか DidBecomeActive: の方がいいかな。
かなりエスパーだが。
- (void)applicationDidBecomeActive:(UIApplication *)application {
[self performSelector:@selector(startAnimation) withObject:self afterDelay:1.0];
}
- (void)startAnimation {
timer.paused = NO;
}
18 :
名称未設定 :2014/02/05(水) 18:23:56.29 ID:KnWOwVZr0
>>14 iOS 7からナビゲーションバーの挙動に関係するメソッドが色々追加されてるから、それ使えば同じ見た目にできるよ
19 :
名称未設定 :2014/02/05(水) 21:17:16.02 ID:Ko3c7XDi0
iAdってDeveloper入らないとシミュレーターで仮の表示もされないんですか? Developer入る前に簡単な動作確認ぐらいしておきたかったんですが。
20 :
名称未設定 :2014/02/05(水) 22:22:16.09 ID:Rwb9EOr40
iPhoneアプリをiPadで起動した時に画面サイズを1倍か2倍に変更ができるようになると思いますが この時の上部にあるステータスバーって消す事が可能でしょうか? iPhoneアプリのiPhone端末やiPadアプリでのiPad端末 またユニバーサル対応アプリでは一般的なステータスバーを消す方法で問題無かったのですが、上記の条件の場合消す方法が分かりません よろしくお願いします
21 :
名称未設定 :2014/02/06(木) 08:37:21.31 ID:t3/kpsb/0
アプリ起動中にPUSH通知のポップアップが表示されないのはなぜでしょう? メッセージは届いているけど上からぴょこっと表示されません。 他のアプリからのPUSHは届いています。
22 :
名称未設定 :2014/02/06(木) 09:19:05.27 ID:RVLuvoXJ0
>>17 タイミングが悪かったんですね、ありがとうございます。
23 :
名称未設定 :2014/02/06(木) 12:36:08.98 ID:6OrDxbBZ0
ARCを有効にしててメモリ不足通知を受け取った時の メモリ解放の方法ってnilを代入しとけばいいんですか?
24 :
名称未設定 :2014/02/06(木) 14:07:35.23 ID:jdj8zMWB0
うん、それしかできない。他にcallocとかしてないんだったら
25 :
名称未設定 :2014/02/06(木) 14:09:45.55 ID:jdj8zMWB0
>>21 アプリがバックグラウンドにある場合のOSが勝手にやってくれる代替手段でしかない
アプリがフォアグラウンドにあるんだったらアプリで自由にUXが最高なのにできるでしょ
26 :
名称未設定 :2014/02/06(木) 14:32:43.27 ID:6OrDxbBZ0
>>24 ありがとう!
ググってもはっきりしなかったのでモヤモヤしてた
27 :
名称未設定 :2014/02/06(木) 17:55:56.13 ID:A+D1hdkx0
いろいろ調べてるうちにここにたどり着きました Wi-FiのIPアドレス取得の方法について質問させてください。 Wi-FiのIPアドレス取得時に、インターフェース名を"en0"で決め打ちで作りました。 touch/iPad(wi-fi)では正しくIPアドレスが取得できているのですが、 どうもiPhoneは、en0はセルラー?のイーサネットのIPアドレスが返ってくるようです。 (↑環境により異なるかもしれません) いろいろgoogle等検索したものの、セルラーのIPアドレスの取得についての記述(pdp_ip0)はあるようなのですが、 Wi-FiのIPアドレスを確実に習得する方法が見つかりません。 どなたかご存知の方、ご教示お願いいたします。
28 :
名称未設定 :2014/02/06(木) 18:03:08.58 ID:MBAb3Fx/0
>>27 iPhoneでもWiFiはen0だけど。セルラーが変な方
29 :
名称未設定 :2014/02/06(木) 18:49:21.37 ID:A+D1hdkx0
>>28 そうなんですか、だとすると別の要因のようですね。
どうもありがとうございました。
30 :
名称未設定 :2014/02/07(金) 00:59:48.01 ID:mfE19sYN0
すいませんが質問です。 UIImageViewで画像表示する場合のメモリ使用量ってデコード後の生のサイズですか? あと小さい画像をUIImageViewで画面いっぱいに引き延ばした場合のメモリ使用量は引き延ばしたサイズにあわせて大きくなるのかも知りたいです。
31 :
名称未設定 :2014/02/07(金) 02:16:57.37 ID:rhmwMlVQ0
こんぴゅーたが処理するのはビットマップでしかないですよ。いまだに 圧縮されたのはデータとして保存するときのみで画像としてはデコードされなきゃ意味が無いのですよ 引き延ばしはビットマップを処理する基本的なことで、いまどきはGPUがあるのでリアルタイムに(逐一/毎回)処理されるでしょう 引き延ばした先がスクリーンだったら引き延ばしたサイズにあわせて大きくなることは(ほとんど)無いでしょう
32 :
名称未設定 :2014/02/07(金) 02:55:54.64 ID:mfE19sYN0
>>31 ありがとうございます!
メモリ使用量減らすのに苦労してるので助かります
33 :
名称未設定 :2014/02/07(金) 06:48:47.72 ID:5h0oIzWH0
UIButtonを生成してUIViewControllerに追加し その後あるタイミングでそのボタンを取り外した時にUIButtonのdeallocが呼ばれるか確認したのですが呼ばれませんでした 大まかなソースコードは以下になります - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { testButton = [MyButton buttonWithType:UIButtonTypeRoundedRect]; testButton.frame = CGRectMake(0, 0, 100, 100); [self.view addSubview:testButton]; } - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { [testButton removeFromSuperview]; } MyButtonはUIButtonのサブクラスです MyButtonではdeallocをオーバーライド(NSLogで呼ばれた事を出力)しかしていません 同じくUIViewを継承したサブクラスは呼ばれています 不具合を確認したiOSは5と6で、Xcodeは5を使っています これがバグなのか仕様なのか分かる方がいましたらよろしくお願いいたします
34 :
名称未設定 :2014/02/07(金) 07:16:54.82 ID:jIaUHns4P
testButton = nil; を入れてみれば
35 :
名称未設定 :2014/02/07(金) 07:22:01.55 ID:5h0oIzWH0
36 :
名称未設定 :2014/02/07(金) 07:24:39.96 ID:5h0oIzWH0
ちなみにremoveFromSuperviewが呼ばれた時に表示としてはちゃんと消えているし InstrumentsのLeakを使ってメモリリークの確認もしたのですが、リークは確認されませんでした deallocだけが呼ばれない感じです
37 :
名称未設定 :2014/02/07(金) 08:41:12.36 ID:DPL/8Vkh0
何かがretainしてるとか
38 :
名称未設定 :2014/02/07(金) 09:11:31.02 ID:5h0oIzWH0
>>37 ソースコードは上に記載したのがほとんどなのでその可能性は考えにくい思います
一応retainCountを使って参照数を調べた感じだと…
>testButton = [MyButton buttonWithType:UIButtonTypeRoundedRect];
>testButton.frame = CGRectMake(0, 0, 100, 100);
>[self.view addSubview:testButton];
この下の時点で2となっていて
[testButton removeFromSuperview];
が呼ばれる前で2、その後で1になっています
iOS7の端末で検証したところ、deallocが呼ばれました。参照数はiOS5、6と同じ挙動でした
39 :
名称未設定 :2014/02/07(金) 09:30:59.01 ID:+VRVwObj0
>>33 + buttonWithType: というUIButtonクラスクラスタのファクトリメソッドがあなたのクラスを生成してないから
40 :
名称未設定 :2014/02/07(金) 09:32:34.70 ID:5h0oIzWH0
展開がありました testButton = [MyButton buttonWithType:UIButtonTypeRoundedRect]; のタイプをUIButtonTypeCustomにしたところ、iOS問わずdeallocが呼ばれました それ以外のタイプを指定した場合はdeallocが呼ばれませんでした んー標準のパーツはリソースやオブジェクト資源を使い回してるのでしょうか
41 :
名称未設定 :2014/02/07(金) 09:41:31.83 ID:5h0oIzWH0
42 :
名称未設定 :2014/02/07(金) 10:00:59.74 ID:5h0oIzWH0
すみません理解しました。長々と失礼しました
43 :
名称未設定 :2014/02/07(金) 10:01:00.05 ID:9mbMRHowP
>>40 >>39 は[MyButton buttonWithType:hoge]で生成されてるのがMyButtonではなくUIButtonになってるって言ってるんじゃないか。
クラス名をそれぞれのパターンで確認してみて。
44 :
名称未設定 :2014/02/07(金) 10:02:00.18 ID:5h0oIzWH0
>>43 ちょうどそれを理解しました。返答ありがとうございました
45 :
名称未設定 :2014/02/07(金) 11:58:59.97 ID:DPL/8Vkh0
MyButton buttonWithType:で生成されているインスタンスは、MyButtonのインスタンスでなくUIButtonのインスタンスなので、MyButtonのdeallocには至らないと、いうこと?
46 :
名称未設定 :2014/02/07(金) 12:22:25.46 ID:JDuoYhuK0
そゆこと。サブクラスはalloc init を使えとのこと。 If you subclass UIButton, this method does not return an instance of your subclass. If you want to create an instance of a specific subclass, you must alloc/init the button directly.
47 :
名称未設定 :2014/02/07(金) 21:32:53.14 ID:nLImfn1u0
“Developer Removed From Sale”の状態で アップデートして”waiting for review”が8日ぐらい続いているのですが OnSaleの状態にしないと審査してもらえないのでしょうか?
48 :
名称未設定 :2014/02/08(土) 03:16:04.00 ID:rjOGGGNv0
iPhone向けのゲームを作っていたやつが2人刺した。 Macのプログラマは、危険な存在であることが証明された。 かれらは、青少年のお金と時間を搾取し、犯罪に巻き込もうとする。 家畜には予備的殺処分という制度があり、ウィルスを蔓延させる危険のある家畜を処分することがある。 iPhoneアプリをつくっているこのスレの社畜にも同様の制度を適用するべきだろう。
49 :
名称未設定 :2014/02/08(土) 06:28:13.51 ID:saxcZDBQ0
>>47 waiting for reviewの次はin review。この状態になると審査が始まる。
今の時期は遅いみたい。とくに新規アプリの場合は数週間から
1ヶ月かかった事例もある。申請が殺到してるみたい。
通常は一週間から二週間の間にwaiting for reviewからin reviewになり
p...何とかになって、on Saieまで行く。
50 :
名称未設定 :2014/02/08(土) 10:36:27.88 ID:5RnvMaZP0
元ネタがわからん
51 :
名称未設定 :2014/02/08(土) 19:08:30.95 ID:Hw961bLZ0
WindowsをホストにVMWareで3000円くらいで売ってるSnowleopardを起動してそこでiOS アプリの開発ってできますか? iOSアプリを開発したいものの、自分の思う通りのものがきっちり作れるかどうかわからないので、それだけのために高価なMacを買うのは気が引けます。 また、実際に開発してみて思う通り作れることができればMacをきっちり買ってストアに出したいと思ってます。 プログラミングに関してはC,Ruby,Clojure等の経験があるのでプログラミングそのもので挫折する事はないです。
52 :
名称未設定 :2014/02/08(土) 19:31:24.55 ID:jmpl7yBh0
>>51 >3000円くらいで売ってる
アップグレード料金です
>VMWare&Snowleopard
認められていません
> WindowsをホストにVMWareでOSX
認められていません
開発を諦めるというのも一つの手です
53 :
名称未設定 :2014/02/08(土) 21:03:15.58 ID:y9egl6RR0
54 :
名称未設定 :2014/02/08(土) 21:36:28.67 ID:GMRyjE3mP
>>51 プログラミングで挫折することがないなら何を試すんだ?
55 :
名称未設定 :2014/02/08(土) 22:15:39.68 ID:2KnDAO1i0
質問させてください。 変数なのですが、 インスタンス変数、クラス変数、メンバ変数、プロパティ変数、 グローバル変数、ローカル変数と色々な呼び方がありますけど、 アクセス権の範囲の違いだと認識しています。 ここで、selfというのが分かりにくいんですけれど、 クラスで色々なオブジェクトや変数を宣言している場合、 xcodeはどうやってselfが指す変数を見分けているんですか?
56 :
名称未設定 :2014/02/08(土) 22:39:02.37 ID:Hw961bLZ0
>>52 ありがとうございます。
Macを買うか諦めるかの方向で考えてみます。
>>54 実際にストアに出せて完成度で競合のアプリに勝てる(と思える)レベルのアプリを作れるかです。
プログラミングを始めてみたい→iOS開発にしよう→Macどうしよう
という状態ではない、ということを言いたかっただけで深い意味はないです。
57 :
名称未設定 :2014/02/08(土) 22:51:19.69 ID:jexqCUr2P
>>56 Core i5搭載した2010年以降のiMacやMac mini、2011年以降のMacBook Pro、Air。
上記にメモリ4G以上、SSD128G以上のスペックで十分に快適な開発が出来る。
ヤフオクでみると10万以下で揃う(実際にストアにアップするなら年間8800円のApple開発ライセンス払うけど)。
BootCampすればWinも動く。Win機に比べ安くはないが、無理そうなら又ヤフオクで売れば良いので
総合的にみて悪い投資じゃないと思う。
58 :
名称未設定 :2014/02/08(土) 23:16:07.08 ID:s+VwidGt0
>>55 selfが指すのはクラスかインスタンスの二つしかないんじゃ
クラスメソッド内ならクラスでインスタンスメソッド内ならインスタンス
59 :
名称未設定 :2014/02/08(土) 23:29:52.04 ID:adH87VS30
>>55 そそ、selfとはメソッドに渡されてくるレシーバのポインタです。
つまりそのメソッドの仮引数です。
クラスの実態は構造体で、インスタンス変数とはそのメンバー。
(レシーバがインスタンスなら、インスタンス変数へは self-> でもアクセスできる。)
この辺の仕組みはダイナミックObjective-Cがわかりやすいかな。
60 :
名称未設定 :2014/02/08(土) 23:31:54.90 ID:jmpl7yBh0
>>55 インスタンス変数 と メンバ変数
他の言語で メンバ変数 と言われるのを インスタンス変数 と呼んでいるだけで、同じ
プロパティ変数
というのは存在しない。プロパティは本当は単なるアクセサの簡単な表記方法でしかない。アクセサの対象がインスタンス変数で、明確に宣言していなければ自動的に作られているだけ
まずは、ローカルに宣言があるかどうか、無かったらクラスに宣言されているかどうかとか、それこそアクセス権?(スコープを上に巡るとか)でだろう
ここで、何を質問しているのかわからないのだが...
selfが指す変数ってなんのこと?selfの中身??
61 :
名称未設定 :2014/02/09(日) 00:10:07.33 ID:ACnIv1tI0
62 :
名称未設定 :2014/02/09(日) 00:11:37.03 ID:uScqoxAe0
>60様 [self メソッド]という書き方をする以上、 selfは変数だと思うんです。 >58様 @interface ViewController() -(IBAction)switchChange:(UISwitch *)sender; @property IBoutlet UIImageView *photo; @property IBoutlet UITextField *myfield; @end (略) -(IBAction)switchChange:(UISwitch *)sender{ self.photo.hidden=!(sender.on); } @end この例の場合selfはインスタンスメソッドの中なのに クラスのViewControllerを示してる(と理解しています) なぜ、viewControllerかイマイチ分からないのです。
63 :
名称未設定 :2014/02/09(日) 00:31:25.40 ID:KJGwQePD0
「メルカリ」などのようなCtoCアプリを作りたいのですが、どのような手順で作ったら良いでしょうか?大まかに教えて頂けたら、後は自分で調べるので、お願いします。
64 :
名称未設定 :2014/02/09(日) 00:32:02.12 ID:Rsa5rYaF0
>>62 >この例の場合selfはインスタンスメソッドの中なのに
>クラスのViewControllerを示してる(と理解しています)
>なぜ、viewControllerかイマイチ分からないのです。
うーん... クラスとインスタンスの区別がつかないのか...
クラスのViewController を、じゃなく ViewControllerクラスのインスタンス だよ
@implementation ViewController
+ (void)classMethod
{
ここの self は ViewControllerクラスの Class
}
- (void)instanceMethod
{
ここの self は ViewControllerクラスのインスタンス
}
他の場所で、
ViewController *viewController = [[ViewController alloc] ...];
とかした場合、viewController には ViewControllerクラスのインスタンス が入るでしょ
[viewController instanceMethod];
と呼んだ場合には、上の instanceMethod中の self には viewController の値がそのまま入るのだが...
ちょっと続く
65 :
名称未設定 :2014/02/09(日) 00:32:40.62 ID:Rsa5rYaF0
>>62 どう書いたらいいかわからんが、
- (void)instanceMethod
(ViewController *self;)
{
}
ってのが暗黙的にあるのですよ。selfの中身は呼び出した時のソレが入っているのですよ
もちろん、@implementation HogeHoge クラスのメソッドなら、HogeHoge *self が
66 :
名称未設定 :2014/02/09(日) 00:36:13.95 ID:43uDd0TY0
[self メソッド] ←selfはメッセージのレシーバ(メッセージを受信するオブジェクト)
67 :
名称未設定 :2014/02/09(日) 00:40:46.38 ID:43uDd0TY0
メッセージの受信側はどうなるかというと。 -(IBAction)switchChange:(UISwitch *)sender{ self.photo.hidden=!(sender.on); } このメソッドには見えないけど引数としてselfがあるわけ。 引数として渡されたselfはインスタンスのポインタだから、 self.photoでインスタンスメソッド(アクセサ)を呼んでる。
68 :
名称未設定 :2014/02/09(日) 00:42:42.80 ID:Rsa5rYaF0
>>63 サーバアプリでどういう機能が必要か考えます
クライアントアプリでどう表現するか考えます
サーバとクライアントでどう通信するか考えます
サーバとクライアントは協調してあーしたほうがこーしたほうがと考えますので、どっちが先とかは明確にはありません
かなり先は長いと思いますががんばってください
69 :
名称未設定 :2014/02/09(日) 00:56:03.00 ID:43uDd0TY0
>>62 こう書いたらイメージできるかな?
試しにやってみ。同じ結果になるはず。
-(IBAction)switchChange:(UISwitch *)sender{
hoge(self, sender);
}
void hoge(ViewController *viewController, UISwitch *sender){
viewController->_photo.hidden = !(sender.on);
}
70 :
名称未設定 :2014/02/09(日) 01:03:19.39 ID:Onz0cVOO0
>>68 逆な気がする。
アプリにどういう機能やUI、画面遷移を実装するか考えてからAPIの仕様決めるんじゃないかな?
71 :
名称未設定 :2014/02/09(日) 01:05:07.54 ID:Onz0cVOO0
あ、どっちが先とかは、ってあったね。ごめん
72 :
名称未設定 :2014/02/09(日) 04:32:37.40 ID:z0JSny5A0
NSData への変換は無駄 サンプルとかをみると、意味なくいったん NSData に変換してから、いろいろやってるようなのがいっぱいあるのですが、 何のために NSData にしてるのかよくわかりません。 // NSData ← UIImage NSData *imgData = [[NSData alloc] initWithData:UIImagePNGRepresentation(image)];
73 :
名称未設定 :2014/02/09(日) 08:13:43.87 ID:KJGwQePD0
>>68 ありがとうございます!
なんとなく掴めたので調べて頑張ります!
74 :
名称未設定 :2014/02/09(日) 11:47:50.46 ID:mXkN9dn70
ゲームのスコアを表示するアニメーションで、 例えば現在のスコアが100で+50されて150になるときに、 101 102 103 104・・・150(この間数秒でアニメーション)のようにスコアの値をアニメーションさせたいのですが、 何かいいアイディアありませんか?また、そのようなアニメーションをするライブラリ等はあったりしますか? ゲームのフレームワーク等は使わず、Objective-cのみで開発しています。
75 :
名称未設定 :2014/02/09(日) 12:44:58.30 ID:43uDd0TY0
>>74 ここの過去スレによく出てくるCADisplayLinkを使えばいいよ。
76 :
名称未設定 :2014/02/09(日) 12:48:42.29 ID:JqgE9iK30
>>74 スコア表示部分がUILabelならtextプロパティをNSTimer使って更新していくのはどうでしょうか?
77 :
名称未設定 :2014/02/09(日) 12:57:15.55 ID:rtKrWXVS0
>>72 それは画像をpngにエンコードしてるんだから、無駄じゃないだろ
78 :
名称未設定 :2014/02/09(日) 13:01:51.85 ID:s3yXVUEj0
>>72 >いろいろやってる
って、いろいろやりようがないような気がしないでも無い、また、いろいろってなにゃねんっていう。NSData への変換は無駄と思うならしなければいい
よくわからないのに「NSData への変換は無駄」って言い切るのはわからんな
その例としたのはPNGファイルとして保存するなりアップロードするなりPNGが欲しいのだろうということだけ。NSDataをNSDataに改めてというのはわからないけど
79 :
名称未設定 :2014/02/09(日) 15:25:52.37 ID:q9+TO+Mw0
iOS7でiBookの三(的なアイコン)を押すと ナビゲーションバーを広げてタイトルの下に目次ブックマークメモと表示している場面があります。 恐らくiOS7ですとナビゲーションバーの高さを可変出来るんじゃないかと思うのですが何処かに参考になりそうなサイトがあれば教えて下さい。
80 :
名称未設定 :2014/02/09(日) 16:19:34.18 ID:Q4Oq3m0C0
もっと分かりやすい例が Safariのブックマークの場面です。 これもナビゲーションバーの領域を広げてタイトルの下にセグメント配置してますが、これはどうやって実装するのでしょうか?
81 :
名称未設定 :2014/02/09(日) 16:34:28.75 ID:43uDd0TY0
Safariのブックマークのヘッダーは、UIViewにUILabel(ページタイトル)、UIButton(完了)と、 その下にUISegmentedControlをレイアウトしてるだけだろ。 このヘッダービューの下(所謂ボディ)が3つのTableViewで、そのhiddenをSegmented..で切り替えてる。 俺にはそう見えるが。
82 :
名称未設定 :2014/02/09(日) 16:41:37.57 ID:43uDd0TY0
iBooksのやつは、同じようなヘッダービュー(NaviBarなのかこれ?)と、 その下から出てくる検索窓のビューは別のビューだよ。 TableViewのcontentOffsertに合わせてヘッダの下からニュッと顔を出す。 これはUIScrollViewにUITableViewが乗ってるのかな? 同じもん作ってみないとわからんけど、そんな感じに見えるな。
83 :
名称未設定 :2014/02/09(日) 19:50:53.73 ID:mXkN9dn70
>>75 >>76 ありがとうございます。
CADisplayLinkを詳しく調べてみて、もしわからなければNSTimerで実装してみようと思います。
84 :
名称未設定 :2014/02/09(日) 22:00:14.38 ID:Ox4iB+su0
A画面ステージ毎のハイスコア一覧 B画面はA画面で選択されたステージのトップ10を表示するとして、 A・B画面は表示するデータ以外の構成は全く同じなので 見かけ上A画面からB画面呼んでるように見せて実際はまたA画面出すようにする方法有りますか? storyboard上でA=>Bのセグエ引っ張ってB画面で使うクラスはA画面のクラスってのが無難でしょうか? それともまたうまく使い回してA画面遷移してまたA画面を利用する事は出来ますか?
85 :
名称未設定 :2014/02/09(日) 23:09:19.98 ID:eVV7FcFyP
Bを呼んでるように見せてAを出す意味が分からない。 AもBも同じクラスを使えばいい。
86 :
名称未設定 :2014/02/09(日) 23:18:55.00 ID:Ox4iB+su0
storyboard が、ごっちゃごちゃするかと思って
87 :
名称未設定 :2014/02/09(日) 23:53:21.26 ID:GoG/KJ6m0
タグでも使えば?
88 :
名称未設定 :2014/02/10(月) 00:16:22.28 ID:mVbt85BmP
>>86 それならコードで呼べばいいさ。
Aのストーリーボード上のIDを使えば同じものを呼び出せる。
89 :
名称未設定 :2014/02/10(月) 01:33:38.18 ID:SEpMakSMP
すみません Core Dataを使っていて、ログに Cannot encode string into UTF-8. と表示されたあと、 UTF-16 Bytes: に続けて大量のバイト列が吐き出されるのですが原因がわかりません。 どうすれば解決できますか?
90 :
名称未設定 :2014/02/10(月) 17:12:18.68 ID:mVbt85BmP
UILabelの文字色を青、枠線を黒にしたいのですが、どうすればいいですか。
91 :
名称未設定 :2014/02/10(月) 18:12:04.95 ID:X5wWdriy0
以下のようにして加工した角をとったimageをtableviewに並べると かなり遅くなるのですが、内部的にcornerRadiusが呼ばれてしまうのでしょうか -(UIImage *)makeRoundedImage:(UIImage *) image{ CALayer *imageLayer = [CALayer layer]; imageLayer.frame = CGRectMake(0, 0, image.size.width, image.size.height); imageLayer.contents = (id) image.CGImage; imageLayer.masksToBounds = YES; imageLayer.cornerRadius = 5; UIGraphicsBeginImageContext(image.size); UIGraphicsBeginImageContextWithOptions(image.size, NO, 2.); [imageLayer renderInContext:UIGraphicsGetCurrentContext()]; UIImage *roundedImage = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); return roundedImage; }
92 :
名称未設定 :2014/02/10(月) 21:28:47.44 ID:vfgQKy9T0
すでにストーリーボード上に配置している、DatePickerを画面サイズに合わせて 一番下に出そうとしているのですが、うまく位置が移動しません 書き方が間違ってるのでしょうか? CGRect rect2 = [[UIScreen mainScreen] applicationFrame]; float newHeight = rect2.size.height - _datePicker.frame.size.height; _datePicker.frame = CGRectMake(0, newHeight, _datePicker.frame.size.width, _datePicker.frame.size.height); - (void)viewDidLoad - (void)viewWillAppear に書いても駄目でした。
93 :
名称未設定 :2014/02/10(月) 22:16:47.53 ID:4XNYX9Q30
>>91 ちょっと面倒だろうが
UIGraphicsBeginImageContexttでなくてのCGBitmapContextCreate
UIGraphicsGetImageFromCurrentImageContextでなくてのCGBitmapContextCreateImage
に置き換えて比較してみるといいよ。変わらなかったら多分他の要因じゃね
UIGraphicsBeginImageContextとUIGraphicsGetImageFromCurrentImageContextでもビッチマップじゃないのかなあと思うが、CGBitmap...はBitmapっつーてんだからよりビットマップじゃないの
94 :
名称未設定 :2014/02/10(月) 22:31:42.26 ID:4XNYX9Q30
>>92 Auto Layoutだろうなあ
そこんとこを、
dispatch_async(dispatch_get_main_queue(), ^{
}
で囲めば変わるけど、後に仕様がかわかるかも。ちゃんとAuto Layoutの勉強をしよう。もしくはAuto Layoutを使わないw
95 :
名称未設定 :2014/02/10(月) 22:39:58.88 ID:4XNYX9Q30
>>92 あ、
>DatePickerを画面サイズに合わせて一番下に出そうとしている
_datePickerがViewControllerの配下にあるなら、それこそAuto Layoutでゼロコーディングなはずじゃないのか
Auto Layout使わないresizingMaskででも
Interface Builderでレイアウトしてという話しだが
96 :
名称未設定 :2014/02/10(月) 22:44:01.54 ID:QAMmDA/t0
storyboardってやつ使い始めたんだけど、viewcontrollerとviewcontrollerをsegueで繋ぐ意味ってあるの? Buttonとviewcontrollerなら勝手に遷移するから便利なんだけど 画面がたくさんあるときに一つのstoryboardに全て詰め込むか、ファイル分けるべきなのかも悩む
97 :
名称未設定 :2014/02/10(月) 22:52:46.89 ID:4XNYX9Q30
>>96 コードで条件によって遷移先を変える時に
- (void)performSegueWithIdentifier:(NSString *)identifier sender:(id)sender
って、簡単に分岐できるでしょ?
98 :
名称未設定 :2014/02/11(火) 04:51:19.78 ID:OBQMw9oP0
storyboardってそこそこの大きさのアプリになるとタブ単位とかで分けなきゃならなくてあまり意味ないよな MBP15Retinaで最高画面サイズにしても編集しにくい xibでstatic cellサポートしてくれたらstoryboardなんかやめるのにな〜 segueとかもアホかと
99 :
名称未設定 :2014/02/11(火) 04:54:18.10 ID:Zxmkbgk90
何を質問しているかわからないよ、初心者君
100 :
名称未設定 :2014/02/11(火) 05:04:59.19 ID:OBQMw9oP0
98は96宛
101 :
名称未設定 :2014/02/11(火) 10:49:45.10 ID:73W47id00
NSURLConnectionでHTMLソースが見れないサイトがあるんですが何故でしょうか?
102 :
名称未設定 :2014/02/11(火) 11:52:04.80 ID:73W47id00
エンコードしてないだけでした、すいません
103 :
名称未設定 :2014/02/11(火) 13:34:16.15 ID:b3uJLGP90
以下コードでは、NSGenericExceptionがでるのですが ループ内でオブジェクトを削除する場合一般的にはどのような処理をするのでしょうか for(Person* person in GeniusList) { if(person.obakaFlag){ [GeniusList removeObject:person]; } }
104 :
名称未設定 :2014/02/11(火) 13:43:46.60 ID:lLGVDVYY0
>>103 Enumeration中に変更はできない。
for (NSInteger i=[GeniusList count]-1; i>=0; i--) {
Person* person = [GeniusList objectAtIndex:i];
if (person.obakaFlag) {
[array removeObjectAtIndex:i];
}
}
105 :
名称未設定 :2014/02/11(火) 13:49:32.92 ID:lLGVDVYY0
間違えた。 [GeniusList removeObjectAtIndex:i];
106 :
名称未設定 :2014/02/11(火) 14:06:13.68 ID:Zxmkbgk90
>>104 実は
for(Person* person in [GeniusList reverseObjectEnumerator]) {
if(person.obakaFlag){
[GeniusList removeObject:person];
}
で可能だったり。未チェックのオブジェクトの位置が変わるのはマズいというのだけかな
107 :
名称未設定 :2014/02/11(火) 14:07:25.70 ID:b3uJLGP90
>>104 105
解決しました。ありがとうございました
ちなみに以下のようにするとうまくいかないのですがなぜでしょうか?
for (int i=0; i<[GeniusList count]; i++) {
Person* person = [GeniusList objectAtIndex:i];
if (person.obakaFlag) {
[array removeObjectAtIndex:i];
}
}
108 :
名称未設定 :2014/02/11(火) 14:10:59.06 ID:KaeR4HXz0
>>107 自分の頭の中で実際に数字入れてループさせてごらんよw
109 :
名称未設定 :2014/02/11(火) 14:11:03.52 ID:lLGVDVYY0
>>106 それは知らなかったw
>>107 後ろから削除しないと次のindexがずれちゃうでしょ。
110 :
名称未設定 :2014/02/11(火) 14:15:47.95 ID:b3uJLGP90
111 :
名称未設定 :2014/02/11(火) 14:37:12.14 ID:zKuYBaxtP
これだと順番とか気にせずに削除できるぽい。削除のためのarray作るとかメモリ食うだろとかあるけど NSMutableArray *array = .....; NSMutableArray *removeItems = [[NSMutableArray alloc] init]; for (NSDictionary *item in array){ if ( 判定 ) [removeItems addObject:item]; } [array removeObjectsInArray:removeItems];
112 :
名称未設定 :2014/02/11(火) 15:44:44.20 ID:Zxmkbgk90
ループ用にまるまるっとコピるとシンプル for(Person* person in [GeniusList copy]) { ... } より多くのメモリを喰うだろうけど
113 :
名称未設定 :2014/02/11(火) 19:35:26.32 ID:NerS1lMo0
imageviewを二つ重ねたいのですが、上のほうに乗せるimageviewのbitmapの 黒い部分だけを透明化したいのですが(アルファマスキング?)どういうコード を使えばいいのでしょうか? こんな感じで書いてます 省略 // 選択した画像を表示(下地) imgView.setImageBitmap(img); // ドラッグイベント処理クラスを紐付ける DragViewListener listener = new DragViewListener(imgView); imgView.setOnTouchListener(listener); //背景イメージを上から貼り付ける(上に乗せる) ImageView haikeiView = (ImageView) findViewById(R.id.haikei1); Bitmap b = BitmapFactory.decodeResource(getResources(),R.drawable.haikei1); haikeiView.setImageBitmap(b);
114 :
113 :2014/02/11(火) 19:37:20.22 ID:NerS1lMo0
すんません、iphone板でAndroidの質問を… 申し訳ありませんがこの質問はなかったことにしてください。
115 :
名称未設定 :2014/02/12(水) 00:18:22.36 ID:sy1zVrcR0
116 :
名称未設定 :2014/02/12(水) 00:45:56.40 ID:q3ehfUzSP
>>115 ユニバーサル対応すればいい。大した手間じゃないだろう。
117 :
名称未設定 :2014/02/12(水) 05:27:44.37 ID:yMdyU+UT0
>>115 wantsFullScreenLayout
ダメなの?
118 :
名称未設定 :2014/02/12(水) 11:11:13.18 ID:sy1zVrcR0
>>116 >>117 wantsFullScreenLayoutで試してみてダメならユニバーサル対応を考えます
ありがとうございました
119 :
名称未設定 :2014/02/12(水) 11:49:59.31 ID:VZ6n8cSO0
ユーザーが決めた時間で(30秒とか2分とか)iPodの曲飛ばしをしたいのですが バックグラウンドで10分以上大丈夫な方法はありますか?
120 :
名称未設定 :2014/02/12(水) 14:24:07.90 ID:q3ehfUzSP
ローカル毎にアプリ名の変更はできますが、同様にアプリアイコンの変更はできますか?
121 :
超初心者 :2014/02/12(水) 20:35:24.54 ID:wcd+pdOO0
プログラミング超初心者なんですが、色々本を読んでもサイトを見てもフレームワークの種類を みなさんがどう判別しているのかわかりません。 1枚の画像を画面全体にだして横にスワイプしたら2枚目の画像を画面全体にだすといった事をしたいのですが、 どのフレームワークが良いのかどうプログラミングしたらいいかもわかりません。 プログラミングはiPhoneアプリ開発『超』入門を読んで少しだけわかります。
122 :
名称未設定 :2014/02/12(水) 20:51:47.42 ID:LjUsP0iS0
>>121 ViewControllerにUIImageViewを乗っけて、それにUISwipeGestureRecognizer乗せて、
そのコールバックをViewControllerで受けて、ってやるかな。
フレームワークはUIKitだけでできる。
どのクラスをどう使えばいいかがわからんって事だな。
始めは目的のアプリに近い本やサンプルを探すしかないかな。
123 :
超初心者 :2014/02/12(水) 20:52:08.59 ID:wcd+pdOO0
すいません。スワイプじゃなくてフリックでした。
124 :
名称未設定 :2014/02/12(水) 21:00:21.50 ID:LjUsP0iS0
スワイプでいいと思うよ。スワイプにしなさい。 つか、時間と座標を取得できるから、速いときだけ動作させるとか。
125 :
名称未設定 :2014/02/12(水) 23:42:05.01 ID:xSIOSBSY0
スワイプとフリックの違いがわからんな。前画面なんだし UIScrollViewにUIImageViewを並べるだけでいいんだけどな やることはちゃんとした座標で配置とpropertyのスイッチをちょっとオンすることだけ フリックがスワイプに対象が追従するならスクロールってわからなくない??
126 :
名称未設定 :2014/02/12(水) 23:46:28.71 ID:yMdyU+UT0
フリックっつーのはスワイプによる入力方法で考え方のレイヤーが違う
>>120 ローカルではなくロケール
127 :
名称未設定 :2014/02/13(木) 00:08:48.65 ID:rIUzux+W0
全画面だったらどっちでもほとんど同じだろうという
まあ、
>>123 はじく/慣性?にこだわりがあったのかもしれないが。そうであれば尚更UIScrollViewだし、スクロールってわからなくない??ちゅう
128 :
名称未設定 :2014/02/13(木) 00:13:49.43 ID:hwlqbVJg0
2枚目の画像をどう見せたいかにもよるよ。 1枚目が横に移動してるその下に既に2枚目があるのか、 pagingEnabled = YES のScrollViewでいいのか。 ま、超初心者なんだから色々やってみればいいんでないの。
129 :
名称未設定 :2014/02/13(木) 00:36:08.77 ID:yF5iPeCD0
ああ、なるほど、流行のか。だったら失礼をしました、ごめんなさい
130 :
名称未設定 :2014/02/13(木) 01:28:57.12 ID:V4eOQpSf0
>>120 できなかったはず。
そもそもiTunes ConnectでLarge App Iconは一つしか設定できないし。
131 :
名称未設定 :2014/02/13(木) 01:41:44.86 ID:/aB25l9J0
今日からアプリ開発を始めたのですがsugueで繋ぐだけだとアップデートでしか更新することができないのでしょうか? ユーザーから編集できるデータベース的アプリを作ろうと思っていますがそうなるとサーバーを用意してコードで記述して作るしかないんでしょうか? 詳しく教えてもらう必要はないので大まかな感じで教えていただけるとありがたいです
132 :
名称未設定 :2014/02/13(木) 02:13:45.09 ID:V4eOQpSf0
>>131 DBをサーバに置くならならアプリ側もサーバ側もコード書く必要ある。
サーバ側はParseなどのmBaaS使えばコードいらないかもしれないが、アプリ側はコード必須。
DBをサーバに置かずアプリ内に置くにしてもコードはいる。
要するにコード書かずにDBっぽいアプリは作れないから諦めろ。
133 :
名称未設定 :2014/02/13(木) 02:22:27.24 ID:/aB25l9J0
とりあえずサーバー用意してobjectCを習得しろってことですかね それだけ分かれば十分です ありがとうございました
134 :
名称未設定 :2014/02/13(木) 02:59:03.82 ID:FSCSad+w0
「初めてのiOSアプリ」系のチュートリアルって日本語リファレンスから消えてる?
https://developer.apple.com/jp/devcenter/ios/library/japanese.html たしか、あれの"二番目のアプリ"かなんかが
バードウォッチングで見かけた鳥をテーブルに追加してくか
なんかそんなのだったはずだが。
いや
「車を運転するんですがカーナビの指示以外の道は走れないんでしょうか?」
「カーナビの地図は最新版にしないと道が表示されないからあきらめろ」
「わかりました、日本地図を用意して車の勉強をすればいいんですね、
それだけわかれば大丈夫です。ありがとうございました。」
という言葉のブラックホールを見たような気がするんだが。
135 :
名称未設定 :2014/02/13(木) 09:17:51.37 ID:VjMGVgMJP
>>130 ですよね。アイコン変えたい場合は日本版と海外版で違うアプリとして申請しないと駄目かな。
136 :
名称未設定 :2014/02/13(木) 15:20:02.88 ID:dU+JvWxa0
起動時にアンケートに答えさせるみたいなの実装したいんですが 起動時にモーダルビューを出す方法がわかりません お願いします
137 :
名称未設定 :2014/02/13(木) 15:24:53.41 ID:hwlqbVJg0
最初のViewControllerじゃ駄目なのかい?
138 :
「ガスライティング 集団ストーカー カルト」で検索を! :2014/02/13(木) 15:46:31.21 ID:fFFYvn1A0
★マインドコントロールの手法★ ・沢山の人が偏った意見を一貫して支持する 偏った意見でも、集団の中でその意見が信じられていれば、自分の考え方は間違っているのか、等と思わせる手法 ・不利な質問をさせなくしたり、不利な質問には答えない、スルーする 誰にも質問や反論をさせないことにより、誰もが皆、疑いなど無いんだと信じ込ませる手法 ↑マスコミや、カルトのネット工作員がやっていること TVなどが、偏った思想や考え方に染まっているフリや常識が通じないフリをする人間をよく出演させるのは、 カルトよりキチガイに見える人たちを作ることで批判の矛先をカルトから逸らすことが目的。 リアルでもネットでも、偽装左翼は自分たちの主張に理がないことをわかっているのでまともに議論をしようとしないのが特徴。 ,.,,,,
139 :
名称未設定 :2014/02/13(木) 15:49:38.38 ID:kaF4O44dP
>>136
最初に表示されるビューコントローラ―のviewDidAppear: でNSUserDefaultsの値をチェックしてモーダル出せばおk。 presentViewController:animated:completion: でも良いし、performSegueWithIdentifier:sender:でも良い。
140 :
名称未設定 :2014/02/13(木) 15:51:47.36 ID:hwlqbVJg0
ああ初回起動時ってことかw
141 :
名称未設定 :2014/02/13(木) 16:09:19.14 ID:kaF4O44dP
142 :
名称未設定 :2014/02/13(木) 18:45:49.43 ID:dU+JvWxa0
>>137 一番最初だけ答えて欲しいから2回目以降はその画面表示しなくていいからモーダルのがいいかなあと
143 :
名称未設定 :2014/02/13(木) 18:46:53.44 ID:dU+JvWxa0
>>139 performSegueWithIdentifier:sender:
使ってやってみたんですが
Warning:
Attempt to present <modalのビューコントローラ> on <モーダルの一個下のビューコントローラ> whose view is not in the window hierarchy.
とでて出来ません。
ウィンドウ階層に入ってないということだと思うんですが何をすればいいんでしょうか
144 :
名称未設定 :2014/02/13(木) 19:13:55.80 ID:ZTVrT25J0
なんかAppstoreにアーカイブをアップロードできないのだけどみんなはどう? もう2時間ぐらいできない。別のアプリだけど午前中はできた。
145 :
名称未設定 :2014/02/13(木) 19:46:13.38 ID:VKAHESP80
>>143 それ、viewDidLoadから呼んでない?
146 :
名称未設定 :2014/02/13(木) 20:39:24.26 ID:dU+JvWxa0
>>145 ViewDidAppearで呼び出したらうまく行きました
ロードの時点ではまだウィンドウ階層が形成されてないってことですね
147 :
名称未設定 :2014/02/14(金) 03:55:11.44 ID:fV8imZQs0
ViewController とチンチ◯が肥大化してきたので、メインコンテンツにかぶせて表示しているメニュービューを別クラスに移すことにしたのですが、これがむちゃくちゃめんどくさくて、下記のような感じで短いメソッド一つ移植するのに一日かかりました。 なにか楽なやり方はないのでしょうか。 メニューにはボタンが十数個配置していて、ViewController は1000行超えてます。 メニュービューはボタンの数と配置を変えてメインや設定など複数のシーンで使います。 // 呼び出し側 .h // プロトコルでメソッド宣言 @protocol MYViewControllerDelegate <NSObject> // クラス外で実装 - (void)makeCloseBtn:(id)sender; @end @property (nonatomic, unsafe_unretained) id<MYViewControllerDelegate> delegate; .m MYMenuMaker *menuMaker = [[MYMenuMaker alloc]init]; self.delegate = menuMaker; // 外部で実装したメソッド呼び出し [self.delegate makeCloseBtn:self.menuView]; // 呼び出される側 .h // プロトコル採用 @interface MYMenuMaker : UIViewController<MYViewControllerDelegate> .m メソッド実装 - (void)makeCloseBtn:(id)sender { // 赤丸 ✕ close ボタン }
148 :
名称未設定 :2014/02/14(金) 04:23:37.70 ID:yZU4RX2P0
>>147 いまいちわからんが、Delegateで選ばれたメニューの通知がメンドくさいってなら
- (BOOL)sendAction:(SEL)action to:(id)target from:(id)sender forEvent:(UIEvent *)event
で、アクションを投げれば、ViewControllerが拾ってくれるだろう。protocol定義
+delegate呼び出ししなくても
149 :
名称未設定 :2014/02/14(金) 04:32:50.40 ID:yZU4RX2P0
>>148 ,147
具体的には
もろもろいらなくて、
[self.delegate makeCloseBtn:self.menuView];
の変わりに
[[UIApplication sharedApplication] sendAction:@selector(makeCloseBtn:) to:nil from:self.menuView forEvent:nil];
だけ。
self.menuViewがわからんが、メニューのボタンから直接行っていいなら、そのコードすらいらずに、ボタンのTargetをnilに(Interface Builderの場合はFirst Responderに繋げる)
150 :
名称未設定 :2014/02/14(金) 05:19:37.06 ID:J+KeaV8e0
なんか、単純にMenuViewっていうオブジェクトを定義すればいいだけっぽいんだが。 各シーンでMenuViewをインスタンス化して表示すればいいんだよね。 それともMenuViewはシングルトンかな? それなら、いずれの場合もプロトコルは必要無くて、単純にMenuViewのメソッドを呼ぶだけでいいし、 - (void)layoutWithMode: みたいなインターフェースがあればいいのではないの?
151 :
名称未設定 :2014/02/14(金) 05:50:45.23 ID:LAb0nmNSP
>>134 英語版からも消えてる。2ndも3rdも。
152 :
名称未設定 :2014/02/14(金) 08:40:34.68 ID:92ojWt0J0
iTunesConnectで表示できない期間(過去)のアプリの売上の記録を取得したいのですが、何か方法はありませんでしょうか?
153 :
名称未設定 :2014/02/14(金) 10:57:54.37 ID:ixmTUCkBP
>>147 うるせー下ネタ混ぜんな
UIContainerView 使ってる? そのメニュー画面を別のクラスに分離するやり方がイマイチなんじゃない?
わざわざメニュー画面のオブジェクトから元の画面にデリゲート投げてるのも良く分からないな。なるべくメニュー画面用のViewControllerで処理した方が良いかと。
あとは、単に上に書かれてるようなデリゲートの関係を作るのに1日かかったって話なら、お前のプログラミング能力(つーかobjcへの慣れ)が足りないだけだからがんばれ。
154 :
名称未設定 :2014/02/14(金) 21:31:10.94 ID:wG8+nVSy0
教えてください バックグラウンドから WEB開きたいのですが アプリが自発的にアクティブにする事は可能ですか? 通知ダイアログ行う方法は知っていますが そこから自動的にURLスキームで他アプリ立ち上げたいので 通知ダイアログは内包が良いです エンタープライズ版ですので審査関係無いです キオスクモード使ってたんですが 再生・巻き戻しのリモコン効かないんですね ただキオスク無しで展示はこわいのでバックグラウンドでメインアプリを自動的に 立ち上がるアプリを作るのが目的です
155 :
名称未設定 :2014/02/14(金) 23:54:29.10 ID:FZGXBoO90
Appleのアプリでアラームがあるけど、時間を設定したあと 完全に終了させても時間になるとアラームが鳴るのはどうやって いるんだろうか?普通のアプリなら、たとえば音楽アプリの アプリを閉じてもバックグラウンド再生できるけど完全に終了 させると音楽が止まる。って感じになるのだが。
156 :
名称未設定 :2014/02/15(土) 00:28:41.38 ID:jMkQEMHKP
local notificationにcustom soundでね?
157 :
名称未設定 :2014/02/15(土) 02:27:20.90 ID:2nrDqujh0
>>148 >>150 回答有り難うございます。めちゃくちゃ参考になりました。
直感的になにかおかしいことをしているとは思っていたのですが、具体的にどうすればいいか全くわかりませんでした。
sendAction:to:from:forEvent:
こんなのあったんですね。使ったことなかった。
こういうメソッドでヨソにメッセージを送れるなら、デリゲートってなんのためにあるんでしょうか?
プロトコルを定義して、これのメソッドを他のクラスで実装する。
これはやってることが明確でわかるのですが、
デリゲートオブジェクトを作ってグダグダやる意味がわからない。
158 :
名称未設定 :2014/02/15(土) 02:35:14.97 ID:v8jKnOkI0
>>157 protocolは、基本的に抽象度の高いオブジェクトから低いオブジェクトをコールする規約っつーか。
ライブラリからアプリ用自作クラスを呼ぶみたいなね。
ヘッダの階層が違うから、ライブラリからはアプリ用クラスのインターフェースが見えないでしょ。
>>147 はプロトコルを使う方向が逆なのよ。
159 :
名称未設定 :2014/02/15(土) 02:57:27.79 ID:ydpsvSKm0
>>157 メッセージを送る方法はいろいろあるが、それぞれに使命wがある
sendAction:は、元々はMacのメニューバー(のメニューアイテム)がコマンド(アクション)を送る目的(メニューバーのメニューアイテムに限らないけど)
貴方の今回の目的には割と合っている/似ている。しかし、送り先は明確に指定しないとレスポンダーチェイン中に限られる
delegateは、まあコマンドを送る目的にはたぶん作られていない。別に使ってもいいんだろうけど
意味は
>>158 のおっしゃる通りです
他にもメッセージを送る方法があるけど、それぞれこの場合には私を使ってって感じがあるので、読み取ろうw
暇がある時に使わないクラス/メソッドも見てみよう(本当は読んでいないであろうAppleの なんちゃらガイド を読めと言いたいw)
160 :
名称未設定 :2014/02/15(土) 11:27:38.68 ID:Uku0Ztf30
保守
161 :
名称未設定 :2014/02/15(土) 12:54:45.59 ID:1bzjeFM80
UIViewControllerのperformSegueWithIdentifierメソッドをUIVIewから実行したいのですが、 どのような方法がありますか?
162 :
名称未設定 :2014/02/15(土) 13:11:02.13 ID:j2LcmNKY0
163 :
名称未設定 :2014/02/15(土) 14:14:59.38 ID:vRHN0LzH0
Twitterのライブラリ使ってTwitterのタイムライン流して書き込みするだけのアプリなら2ヶ月程。 Bluetoothのライブラリ使って近距離チャットアプリ作るなら10ヶ月程度。 自前のサーバー買ってきてプログラマー雇って貴方がアプリデザインに専念するなら半年〜1年。 自前のサーバー買ってきてサーバーのプログラミングしてiPhoneのプログラミングしてアプリデザインして…なら3年程。 更にメッセンジャー等に匹敵する使い心地の良いメッセージアプリに昇華しようとするなら4年はかかりましょう。
164 :
名称未設定 :2014/02/15(土) 14:17:03.27 ID:j2LcmNKY0
ひぇ〜〜〜 オラもうダメだ
165 :
名称未設定 :2014/02/15(土) 14:18:45.54 ID:j2LcmNKY0
なんかとりあえず自信つけるために何か1つ作りたいんですけど 簡単な奴ないですかね? app storeの審査に通りそうなやつで
166 :
名称未設定 :2014/02/15(土) 15:08:51.70 ID:o1Zc2oz20
限定じゃんけん
167 :
名称未設定 :2014/02/15(土) 15:18:20.00 ID:VEvG+xDcP
>>165 画面遷移やデータの記録に関することを学ぶためにもメモ帳アプリとかToDoアプリはどうかな。
168 :
名称未設定 :2014/02/15(土) 15:23:17.37 ID:ES1sys7Q0
Hello World
169 :
名称未設定 :2014/02/15(土) 15:23:26.20 ID:j2LcmNKY0
どれぐらいかかります? 作成1週間審査1週間で2週間いないにapp storeいけますかね?
170 :
名称未設定 :2014/02/15(土) 15:49:54.09 ID:9k0Blg7D0
171 :
名称未設定 :2014/02/15(土) 16:41:02.02 ID:Uku0Ztf30
>>161 UIViewにそんなことさせちゃ駄目。
UIViewのイベントをViewControllerでひろって、ViewControllerでやるべき。
172 :
名称未設定 :2014/02/15(土) 18:29:48.71 ID:+/8xYI5i0
>>171 UIButtonはUIControlのサブクラス,UIControlはUIViewのサブクラス
IBでButtonからsegueを繋げるのは、ViewでperformSegueWithIdentifierと呼ぶのとそんなに変わらない
performSegueWithIdentifierをActionと同じと見なせば、ViewはAction/Segueを発行し、Actionを行なうのはControllerと見なせるだろうから
何を言いたいのかというと「駄目」「やるべき」というのとは違うというw
173 :
名称未設定 :2014/02/15(土) 18:37:32.20 ID:+/8xYI5i0
>>161 UIViewがUIViewControllerを知っていれば、呼ぶだけというのはわかるだろう。UIControlのAction/Targetのように
UIViewがUIViewControllerを知る手だてが無い、または、それをするのは面倒でUIViewがUIViewControllerのレスポンダーチェーンにあるなら、
Actionをレスポンダーチェーンに投げてそのActionをUIViewController受け取ってかな
UIViewとUIViewControllerはレスポンダーチェーンとして全然無関係な位置にあるなら、NSNotificationを投げてUIViewControllerが受け取ってかな
他には...
174 :
名称未設定 :2014/02/15(土) 22:50:23.07 ID:mY++qpIfP
>>154 バックグラウンドに落ちちゃってたら勝手に立ち上げる方法はないはず
175 :
名称未設定 :2014/02/15(土) 23:22:18.95 ID:FxcYStgY0
無名カテゴリの中がプライベート宣言になるのってどういうカラクリですか?
176 :
名称未設定 :2014/02/15(土) 23:27:41.23 ID:tuNW0cwII
UIWebviewの初回読み込みがめちゃめちゃ遅いんですが、 そんなもんですか?? リンククリックとかだとサクサク動くんですが。
177 :
名称未設定 :2014/02/15(土) 23:38:39.59 ID:XYaddMF/0
>>175 無名カテゴリだからプライベートってことじゃないよ。
.mに宣言すると、ヘッダに顔を出してないから外から見えないってこと。
178 :
名称未設定 :2014/02/15(土) 23:49:18.51 ID:FxcYStgY0
>>177 ありがとうございます
実験してみたら別に無名カテゴリ使わなくてもプライベートメソッドとして使えました
無名カテゴリはメソッドを先頭にまとめておけるという利点だけでしょうか?
179 :
名称未設定 :2014/02/15(土) 23:53:48.35 ID:unVXSHkk0
Objective-Cにプライベートメソッドはないよ 普通は問題ないけど継承した時にはまったりする
180 :
名称未設定 :2014/02/16(日) 00:22:49.23 ID:jV+HAoRh0
>>178 一般にはプロパティを隠蔽したい時に使うかな。(完全な隠蔽ではないけど。)
要は、ヘッダにインターフェースとして出すか出さないかなんだよ。
俺の場合は無名カテゴリは、複数カテゴリからなるちょっと規模の大きいクラスとか、
複数のクラスからなるクラスタのときに使う。
181 :
名称未設定 :2014/02/16(日) 01:56:23.71 ID:BpqmDdo/0
本気でアプリを作って運営して広めようとしたら、公式サイトは不可欠ですか?
182 :
名称未設定 :2014/02/16(日) 05:30:58.21 ID:/twp2z5e0
ゲームセンターでリーダーボードを実装してるんですけど チャレンジ機能を無効にする方法ってないですかね? スコアランキングだけでいいのによくわからん機能の対応したくないっす泣w
183 :
名称未設定 :2014/02/16(日) 05:54:59.13 ID:Ub4TEROt0
適当なチャレンジおいとけばいいじゃん ゲームスタートとかゲームオーバーとかw
184 :
名称未設定 :2014/02/16(日) 11:05:01.31 ID:H8yFxlge0
質問です。 「UIAlertViewが消えたら成功です」ということを一般ユーザに分かりやすい英語で説明するために、「ウィンドウが消えれば成功です」ということを英語で表現したいのですが、 「It is a success if the window disappears」 という英語は適切でしょうか? もっと適切な英文があればご指摘よろしくお願いします。
185 :
名称未設定 :2014/02/16(日) 11:22:31.05 ID:crDyG7ed0
php サーバーにpost で簡単に配列を送るときはjson 使うしか無いのでしょうか? NSString *query = [NSString stringWithFormat: id[]=%@"&id[]=%@", @"2", @"110"]; [request setHTTPBody:query]; こんな感じでやるとPHPでは配列として受け取ってくれるんだけど id羅列するのは面倒だし実際は配列の個数が不定なので恐ろしいです。 複数のidをpost 配列の個数分文字列として送る以外に json使わないでひとまとめにして送る方法有りますか?
186 :
名称未設定 :2014/02/16(日) 11:23:05.92 ID:LdFiq2wd0
" Window closed as game over, Fucking thanks. "
187 :
名称未設定 :2014/02/16(日) 13:14:48.08 ID:H8yFxlge0
188 :
名称未設定 :2014/02/16(日) 14:43:18.73 ID:LdFiq2wd0
HA HA HA, LOL
189 :
名称未設定 :2014/02/16(日) 18:29:13.03 ID:utQZPBF60
190 :
名称未設定 :2014/02/16(日) 20:19:36.60 ID:A0yUaM7MP
HACK you
191 :
名称未設定 :2014/02/16(日) 20:27:07.95 ID:RItNwRO20
>>185 サーバーアプリの実装によるだろ。サーバアプリがJSON以外でも受け付けているならそれってあるけど、JSONあるのにわざわざ他をサポートする意味はあまりないな
ちまちま自分でJSON文字列作るか、汎用のJSONライブラリ使えばええやん。NSArrayからJSONに簡単にできるでしょ
192 :
名称未設定 :2014/02/16(日) 20:31:30.45 ID:RItNwRO20
>>185 >id[]=%@"&id[]=%@
そもそもこれってJSONなのか??
単にリクエスト中のパラメータに見えるけど、そんなJSON使ったこと無いから知らないだけか?
193 :
名称未設定 :2014/02/16(日) 22:19:56.85 ID:TzjRKhka0
>>191-192 json で送ってるんじゃなくて、配列をjson使わずに送る方法があるか?、ということです。
サーバーのPHP側が普通のPOSTで受け取っているので
結局、配列で受けるのは2箇所だったのでJSONで受け取れるように修正しました。
今後のためにも方法があったら是非教えてください
194 :
名称未設定 :2014/02/16(日) 23:03:47.83 ID:/7pdfofG0
>>193 だからサーバの実装によるって言ってるじゃん。なんでそれに答えないの?
サーバをいじれないならサーバに合わせた形式で送るしかないし、サーバをいじれるならいくらでもやりようがある。
例えば、id=2,110みたいにカンマ区切りにするとか。
(その場合、サーバをどういじればいいかは自明だと思うけど、分からないならやめとけとしか言えない。)
195 :
名称未設定 :2014/02/16(日) 23:08:21.17 ID:RItNwRO20
>>193 なるほど。なんでいきなりJSONでない方法を聞いているのかってことでだったけど
JSONでできるんだったらそれでいいじゃん。だいたいそれが今一番簡単汎用性があるからほぼ標準になってんだろう。XMLもできるし
別にJSONでなくても簡単な独自フォーマットで何でもできるけど。サーバもそれを独自に実装すればだけど、それはできない/しないでってことだろうな
なにをめんどくさがっている/簡単にしたいのかわからん
196 :
名称未設定 :2014/02/16(日) 23:09:49.40 ID:RItNwRO20
197 :
名称未設定 :2014/02/16(日) 23:43:54.46 ID:TzjRKhka0
経緯を話すと長くなるので割愛しますが androidのほうは PHPの$_POSTの中みると特に変換せずに配列で受け取ってるみたいだったので 同じくobjective-cでもないかなーと explode 使う方法は気づかなかったけど修正入るのはandroid側がいやがると思うので そのままサーバープログラムが使える方法がないか探してました。
198 :
名称未設定 :2014/02/17(月) 00:59:22.11 ID:ZpSXUoEz0
標準でない方法を聞かれても、逆にそっちができるのかできないのかわからないのに答えようがないわな
199 :
名称未設定 :2014/02/17(月) 02:01:29.83 ID:TXrn2nXa0
GameCenterの実績やランキングを見る画面に行くためのボタンに、Apple公式のGameCenterのボタンを使うことは問題ありますか?
200 :
名称未設定 :2014/02/17(月) 02:38:31.02 ID:DawO/ySH0
Received memory warningで困っています。 何かのきっかけで、突然ログにずらずらと並びます。 ARC下ではどんなところを注意すればいいですか? とりあえずCGImageとcontextのreleaseはしました。 UIImageViewをremoveFromSuperviewしたあとのreleaseは必要ないんですよね?
201 :
名称未設定 :2014/02/17(月) 02:46:50.11 ID:0UyDNR760
>>200 CF系は、createしたものは専用のリリース関数で解放。(ドキュメント参照のこと)
UIImageViewは、リテインしてるのがsuperViewだけならそれで解放されるけど、
インスタンス変数他もリテインしてるなら、imageView = nil;
202 :
名称未設定 :2014/02/17(月) 02:48:02.21 ID:0UyDNR760
Instrumentでいつメモリが増えるか見てれば検討つくよ。
203 :
名称未設定 :2014/02/17(月) 02:58:54.76 ID:ZpSXUoEz0
>>201 >インスタンス変数他もリテインしてるなら、imageView = nil;
インスタンス変数でのインスタンスのリテインはdeallocで解放するのを勝手に入れてくれるはず
循環参照を解消する為にdealloc以外ででそれをするなら話しは別だけど
204 :
名称未設定 :2014/02/17(月) 03:12:30.23 ID:0UyDNR760
>>203 インスタンスを解放すればインスタンス変数は解放されるね。
>>200 メモリを圧迫するほどでかいって事は、NSArrayとかに大量に入れっぱなしなんじゃ?
あとCGContextRefを生成してるみたいだけど、他にもCGColorSpaceRefだの、
CGBitmapContextCreate()の第一引数だのチェックした方がいいよ。
205 :
名称未設定 :2014/02/17(月) 03:15:06.63 ID:0UyDNR760
ついでに、CGBitmapContextCreate()の第一引数はNULLでおk(解放も不要)
206 :
名称未設定 :2014/02/17(月) 08:30:44.50 ID:hd8jzc4W0
207 :
名称未設定 :2014/02/17(月) 11:56:39.82 ID:zxhdIrMw0
WikiマークアップをHTMLに変換するライブラリとかないですかね? PEAR::Text_Wiki の Objective-C版みたいなものです。
208 :
名称未設定 :2014/02/17(月) 12:34:51.26 ID:rSEESWZa0
Wiki markup objective-c でググると何か出てくるね。直接の解決策(ライブラリとか)にはならんけど 何か参考になるのはあるんじゃないのかな。
209 :
名称未設定 :2014/02/17(月) 13:05:30.51 ID:zxhdIrMw0
>>208 ありがとうございます。
少し時間がかかりそうなので調べてみます。
なお、最終的な目標はWikipediaの本文をリンク付きでHTML化することです。
210 :
名称未設定 :2014/02/17(月) 18:27:47.83 ID:GrRcHLYE0
質問です。 CoreTextPageViewerというサンプルプログラムを読んでいるのですが、 その中のCoreTextScrollView.mには、 複数の@interfaceと@implementationの組(ソース)が書かれています。 (1)どういう場合に一つの実装モジュール内に複数クラスの実装を記述するのでしょうか? (2)awakeFromNib等(initメソッド)が複数あるのですが、 一番最初にどれが実行されるのかはどうすれば分かるのでしょうか?
211 :
名称未設定 :2014/02/17(月) 19:08:46.01 ID:wZMh9XcNP
>>210 一般的には実装モジュールじゃなくてコンパイル単位とか
ソースファイルって言うんだけど、
そのファイルの中でしか使わなくて、わざわざ他の
ファイルにするほどでもないものはまとめてしまうことあるよ。
awakeFromNib は xib などからロードされプロパティの
セット、outlet の接続が完了してから呼ばれる。
(ドキュメントに書かれてるはず)
一番最初に呼ばれるのは何も引き数のない init。
ただしその時点で必要な初期化が完了しているかどうかはクラス次第。
NSObject としての初期化は完了しているけど。
212 :
名称未設定 :2014/02/17(月) 19:43:06.81 ID:GrRcHLYE0
>>211 レスありがとうございます。
Aというソースファイルに含まれているB、C、Dのオブジェクトは、
Aのオブジェクトが生成されても生成されないという理解で良いのでしょうか?
(Aのコードの中でB、C、Dを明示的に生成するのでしょうか)
その場合、Bの中に記述されているawakeFromNIbは、いつ呼ばれるのでしょうか?
また、Cの中にもawakeFromNIbがある場合は、
呼ばれる順序はどういう規則で決定されるのでしょうか
213 :
名称未設定 :2014/02/17(月) 20:07:10.60 ID:0UyDNR760
>>212 B, C, Dは、Aがそれを必要になったらAが生成-初期化する。
BのawakeFromNibは、Bの初期化時に呼ばれる。Cも同様。
214 :
名称未設定 :2014/02/17(月) 20:49:17.89 ID:tkvsxP0t0
>>212 awakeFromNibは、nibファイル(というのは歴史的な名前で、今ならxibやstoryboard)から
読み込まれてオブジェクトが生成された時に呼ばれるメソッド。
xib/storyboardからオブジェクトを生成する場合、
1. 各オブジェクトをalloc/initWithCoder:で生成および基本的なプロパティを設定
(この場合、initやinitWithFrame:などは呼ばれない)
2. オブジェクト間の関連(IBOutletやIBActionなど)を接続
3. 最後に、各オブジェクトのawakeFromNibを呼ぶ
って流れになる。
215 :
214 :2014/02/17(月) 21:04:39.87 ID:tkvsxP0t0
216 :
名称未設定 :2014/02/17(月) 21:05:32.67 ID:MOTfwK1t0
もともとObjective-Cでは宣言したクラスはファクトリクラス(雛形)として 最初からそのまま存在していて、クラス名[alloc]でメモリとって[init]で初期化というセットで 実際のインスタンスを生み出す。これが基本 しかし、インターフェイスビルダー関係のファイル(xib/nib)は 起動時にロードされて実行時にパーツがアクティブになっていてくれなくては困るので アプリ起動後インスタンスが生成された状態まで自動で行ってコントロールが来る。 以前はこの仕組みのせいで参照カウントがズレてちょっとめんどくさいことを しなきゃいけなかったんだが、自動参照カウント(ARC)実装で気にしなくてよくなり… そして、そこで悩まなくなった結果また混乱している人が増えてるような気がしないでもない。
217 :
名称未設定 :2014/02/17(月) 22:34:03.21 ID:R4R01axR0
ちょっと関連するかもしれませんが、 数万行は書いたプロジェクトがあるのですが、ARCをOFFにしていたのをONにしてみました。 ビルドエラーがたくさん出るのでコードを手直しし、ビルドを通し起動してみたところ、 起動はするのですが、ちょっと画面上の何かに触れるだけでUIApplicationMain部分でエラーが起きクラッシュします。 おそらくxibで定義されたパーツへのアクセスで引っ掛かっているのではないかと思うのですが、コード上でエラーや警告はないのに ARCのON/OFFでこのようなことが起こる原因は何が考えられますか?
218 :
名称未設定 :2014/02/17(月) 22:40:59.98 ID:tkvsxP0t0
>>217 無謀すぎ。手で直すよりもEdit→Refactor→Convert to Objective-C ARCの方がいいと思う。
落ちるのは、ポインターがassignになってるせいかも。strongかweakにしてみれば?
219 :
名称未設定 :2014/02/17(月) 23:31:51.52 ID:wZMh9XcNP
>>212 そういうことです。
コードで生成される他に xib をロードした時に自動生成されます。
awakeFromNib が呼ばれるのは後者の場合だけです。
単一の xib ファイルの中に幾つかのオブジェクトがあるとき、
それぞれのオブジェクトの awakeFromNib がどんな順序で
呼ばれるかは決まっていないと思います。
ドキュメントみて見てください。
220 :
名称未設定 :2014/02/17(月) 23:49:15.10 ID:R4R01axR0
>>218 コンバートは結果的にはしました。
instrumentsでゾンビを見てみましたが、原因箇所は
[self.view addSubview:hogeVC.view];
と全然アテになりませんでした。なかなか困り者です..
221 :
名称未設定 :2014/02/18(火) 05:24:18.55 ID:Ofz13Oye0
全部のVCの-deallocにNSLog入れて解放されてるか確認してる? これ普段でも基本中の基本なんだけどな
222 :
212 :2014/02/18(火) 08:02:29.82 ID:YYPIVlI30
223 :
名称未設定 :2014/02/18(火) 12:54:21.32 ID:OTXs6WMcP
マルチスレッドを使うのに、GCDとかNSOperationとかNSThreadとかあって、何使えばいいのかよくわかりません Looperを必要としない場合GCDとNSOperationで処理効率の差はあるのでしょうか またhttpなどでLooperを必要とする場合NSOperationとNSThreadとではどうなんでしょうか
224 :
名称未設定 :2014/02/18(火) 15:32:12.69 ID:LPHXOAys0
グローバルなUIImageViewをテーブルビューのセルに貼って繰り返し使うとき、 勝手に解放されてbad accessになるのでretainしたり NSTimerを使う時もretainしていたのですが 久しぶりにアプリ開発したらretainが書けなくなってました。 で案の定クラッシュするのですがどうしたらいいのでしょう。 ARCを切る以外に方法ありますか?
225 :
名称未設定 :2014/02/18(火) 15:53:37.79 ID:rxImNO0j0
>>223 スレッドを行なう処理をクラス化した方がかっこいい場合は、NSThreadかNSOperationかなあ
スレッドのリクエストが同時期に多発する場合は、NSThreadではなくNSOperation。NSThreadだと無限にスレッドが動くので
インラインでならGCD一択だけど
また、クラス化したいときでもGCDででもだけど、mainにあたるメソッドでdispach_asyncで大きく囲っただけなのがちょっとかっこ悪いかなあと思う
NSOperation+NSOperatioQueueのやりたいこともGCDでやっているので、悩むんだったら、GCD使うだけでいいと思うよ
GCDはNSThreadより効率がいいらしいし、NSOperationとどうかは知らんが劣ることはないだろうからなあ。俺はそんなビキビキな効率なんて求めることが無いから効率なんて気にしないけど
226 :
名称未設定 :2014/02/18(火) 16:17:44.04 ID:QFk5F+nAP
227 :
名称未設定 :2014/02/18(火) 17:07:14.15 ID:/M0JeUv20
strongで
228 :
名称未設定 :2014/02/18(火) 20:08:31.70 ID:9l2Jvots0
EKReminderから、繰り返しの条件(毎日、毎週、隔週など)を調べる方法はあるんでしょうか? EKRreminderのrecurrenceRuleに収容されていそうなことはわかったんですが…
229 :
名称未設定 :2014/02/19(水) 01:33:46.75 ID:zGRxCQtL0
>>223 大抵はGCDで間に合うんじゃないか。
NSOperationの特徴はサブクラス化できるって事と、キャンセルが簡単ってとこかな。
あと、非同期でHTTPレスポンスを受け取りたいってことなら、
NSURLConnectionの非同期メソッドが楽でいいだろう。
230 :
名称未設定 :2014/02/19(水) 03:29:00.72 ID:4nMt0Lwn0
テーブルビューへ戻る時に、テーブルビュー遷移と同時に、データ保存処理しその間に保存中は進捗をプログレスバーで表示しつつ完了で消す、という処理をしたいのです。どうやるのでしょうか?
231 :
名称未設定 :2014/02/19(水) 11:25:10.72 ID:QoqI8c9A0
NSStringの定数をつくるとき static cons NSString *test = "hoge"; はダメで static NSString *const test = "hoge"; だといいのはなぜ?
232 :
名称未設定 :2014/02/19(水) 12:00:11.93 ID:VLADlLCTP
233 :
名称未設定 :2014/02/19(水) 13:06:08.51 ID:Vm9oyfUt0
234 :
名称未設定 :2014/02/19(水) 14:36:57.00 ID:0DeqL8Ig0
>>231 const NSString *testA = @"hoge"; testAの内容"hoge"は変更不可
NSString *const testB = @"hoge"; testBのポインタは変更不可
testAの場合ポインタ値の代入は可能なので、これができる↓(testBにはできない)
testA = @"fuga";
235 :
名称未設定 :2014/02/19(水) 15:40:12.48 ID:ih8qanVR0
質問です。 UITextViewやUIWebViewでrtfdファイルをロードしたときに rtfd内の画像をretinaに対応させたいのですが、どうしたら良いでしょうか? 通常そのままロードしたら対応していないのでボケボケです。
236 :
名称未設定 :2014/02/19(水) 15:43:10.40 ID:PUigIotP0
質問です http通信した時にエラーで(kCFStreamErrorDomainSSL -9813)とログに表示されます これは何のエラーでどんな風に対応したらいいのでしょうか?
237 :
名称未設定 :2014/02/19(水) 16:10:11.61 ID:a8emh9xh0
238 :
名称未設定 :2014/02/19(水) 16:35:10.77 ID:TpvYSjP/0
239 :
名称未設定 :2014/02/19(水) 16:44:00.70 ID:PUigIotP0
240 :
名称未設定 :2014/02/19(水) 16:49:38.68 ID:TpvYSjP/0
>>235 貼付けた/る画像の解像度を上げる。Previewの ツール > サイズを調整...とかで
Mac上でしか試してないが、解像度(情報)の違いによって、ピクセルサイズが同じでも画像が小さくなるので、多分大丈夫じゃないかなあ
241 :
名称未設定 :2014/02/19(水) 18:53:39.77 ID:RK3EG7Yn0
質問です。 ストーリーボードを使用して、ViewControllerからTabBarControllerに画面遷移したいのですが。 ログイン画面を作成したいので、ストーリーボードでボタンから紐づける形ではなくてコードを使用して 画面遷移をさせたいです。 どのようなコードを書けばいいですか?
242 :
名称未設定 :2014/02/19(水) 21:44:14.17 ID:Hvd4oBQN0
UINavigationController利用時に UINavigationBarを画面の上部に固定せずに、 その下のScrollViewをスワイプすると一緒に動くようにしたいのですが どのように実装すればできるでしょうか?
243 :
名称未設定 :2014/02/20(木) 01:30:56.26 ID:PP6QEKw80
DVD個室の花太郎 インフルエンザ客だらけ 警察官から聞いたからガチ
244 :
名称未設定 :2014/02/20(木) 02:08:13.96 ID:HtqIibsW0
>>230 >データ保存処理しその間に保存中は進捗をプログレスバーで表示
ここの部分の定石があれば教えて頂きたかったのです。
メインスレッド上で動いているUIのテーブルビューとナビゲーションバーに加え、プログレスバーも並行して動作させたいわけです。
この場合、別スレッドでデータの保存処理をして、その進捗値を断続的にメインスレッドにあるプログレスバーに送る、という方法を考えたのですが、gcd とか、NSThread とか、オペレーションキューとか色々あるので、どれが最も簡便な形になるのかご教示頂けると助かります。
245 :
名称未設定 :2014/02/20(木) 02:08:59.91 ID:9dYAoM7d0
>>241 遷移元のViewControllerからSegueを引いて、Identifierになんか入れて、
遷移元のViewControlleのperformSegueWithIdentifier:sender:をなんか入れたIdentifierで呼ぶ
>>242 単にUIViewのサブクラスのNavigation Barがあるんだから、それを置いてNavigationControllerのNavigation Barをhiddenして同期してとか
てか、そんなの気持ち悪いから、Safariとうサンプルがあるんだからそれにした方がいいと思うよ
246 :
名称未設定 :2014/02/20(木) 02:22:56.62 ID:M25gKMiG0
>>244 単純にこういうこと? 保存にそんなに時間かかるかな。
dispatch_async(dispatch_get_main_queue(), ^{
progressView.progress = 0.5;
});
247 :
名称未設定 :2014/02/20(木) 02:23:10.84 ID:9dYAoM7d0
>>244 特に細かい定石は無いと思うよ
そこまで書いているんだったら、好きなの選べばいいよ。対して変わりがないので全部試してみれば?面倒ならGCDでいいんじゃね
248 :
名称未設定 :2014/02/20(木) 02:40:00.70 ID:1SHSKUGfP
PerformSelectorOnMainthreadのno waitが楽
249 :
名称未設定 :2014/02/20(木) 03:45:44.63 ID:uAvGv6Fg0
マルチタスクの切り替えで表示されるスクリーンショットの撮影処理って 自分で制御することってできますか? 一回古い画像が表示されることがあったので自分でなんとかできるならしたいです。
250 :
名称未設定 :2014/02/20(木) 06:32:34.10 ID:M25gKMiG0
251 :
名称未設定 :2014/02/20(木) 14:31:12.54 ID:uAvGv6Fg0
>>250 ありがとうございます!
今ignoreSnapshotOnNextApplicationLaunch試してます。
applicationWillResignActive内で常に呼ぶようにしましたが
今まで通りスクリーンショットが普通に表示されてしまいぐぬぬって感じですw
古いスクリーンショットが表示されてしまう現象はその後発生してないので
レビューで指摘されたら対応考えようかなと思いますw
ありがとうございました
252 :
名称未設定 :2014/02/20(木) 14:33:52.32 ID:1SHSKUGfP
Appleのドキュメントでセキュリティ上問題となる情報は消せと読んだ覚えが。
253 :
名称未設定 :2014/02/20(木) 17:54:31.18 ID:u+mIkyy/0
UIWebviewでブログを開いた時に、オーバーレイ広告を削除する方法はありませんか?
254 :
名称未設定 :2014/02/20(木) 17:56:32.98 ID:jWHxEmcMP
ない
255 :
名称未設定 :2014/02/20(木) 18:08:30.98 ID:u+mIkyy/0
広告消すJavaScriptかソース内の広告部分削除する方法を教えてください
256 :
名称未設定 :2014/02/20(木) 18:34:45.37 ID:Jb+NtR/N0
そんなもん何につかうの?
257 :
名称未設定 :2014/02/20(木) 18:51:02.78 ID:8+OjQWOi0
258 :
名称未設定 :2014/02/20(木) 19:46:11.66 ID:jWHxEmcMP
ちょっと検索すればやり方いくらでも出てくるだろーに…
259 :
名称未設定 :2014/02/20(木) 19:51:46.91 ID:bZ4isMuW0
とても開発者とは思えないっす..........
260 :
名称未設定 :2014/02/20(木) 19:52:32.92 ID:0YvSYQwg0
UILabelの枠線をborderTopだけ指定する、といったことは出来ますか?
261 :
名称未設定 :2014/02/20(木) 20:59:46.79 ID:JqUFnfKpP
262 :
名称未設定 :2014/02/20(木) 21:05:07.06 ID:uTvxKTKB0
質問なんですが、 UIViewController_AとUIViewController_Bがあります。 UIViewController_Aの中にUISearchBarがあり、UIViewController_B内のメソッドからUISearchBar.textに値を入れたいのですが、どうすればいいのでしょうか?
263 :
名称未設定 :2014/02/20(木) 21:06:22.86 ID:M25gKMiG0
>>260 UILabelをサブクラス化して-drawTextInRect:をオーバーライドすればできるよ。
ついでに調べ方を教えて上げよう。
まずUILabelのドキュメントを見て、そんなプロパティがあるか調べる。
なければスーパークラスのUIViewも調べる。
そこにもなければ、ボーダーを描画してるのはUIViewのlayerだから、CALayerのドキュメントも見る。
そうすると、そんなプロパティは無いという事がわかるので諦めるか、どうしてもやりたければこうするか、
>>261 のやり方で。
- (void)drawTextInRect:(CGRect)rect {
if (self.drawsBorderTop) {
CGContextRef ctx = UIGraphicsGetCurrentContext();
CGFloat lineWidth = 3.0;
CGContextSetLineWidth(ctx, lineWidth);
CGContextMoveToPoint(ctx, 0, lineWidth * 0.5);
CGContextAddLineToPoint(ctx, self.bounds.size.width, lineWidth * 0.5);
CGContextStrokePath(ctx);
}
[super drawTextInRect:rect]; //superでtextを描画してもらう
}
264 :
名称未設定 :2014/02/21(金) 11:04:03.52 ID:h8hnY0bd0
>>261 , 263
回答ありがとうございます!
drawTextInRectも試してみます。サブクラス化してオーバーライドするのがiOSでは定番の手法なのですね。
265 :
名称未設定 :2014/02/21(金) 12:16:55.02 ID:J/O1+0cH0
266 :
名称未設定 :2014/02/21(金) 12:27:10.05 ID:RizaV7awP
>>265 MacみたくHomeの下にあるとは限らない。
267 :
名称未設定 :2014/02/21(金) 13:11:25.82 ID:22AZO+UH0
viewの遷移を行う際、戻る必要が無い一方通行のものをつくりたいのですが その場合でもpresentViewControllerを使用するのでよいのですか? 表示中のビューへの「割り込み」と記述されていたうえ、戻るための機能も 用意されていたことからメモリ上に前に表示されていた画面が 残り続けているのではと気がかりなのです。
268 :
名称未設定 :2014/02/21(金) 13:16:08.97 ID:C87kCqNt0
>>267 >戻る必要が無い一方通行
は想定していない。いつかはrootには戻るだろう。戻らなきゃ前に表示されていた画面が残り続ける
設計がおかしいので考え直そう
269 :
名称未設定 :2014/02/21(金) 14:02:33.04 ID:FaYbkbRUP
>>267 入れ替えたいってれことなら今のをpopするなりなんなりして
次のをpushするなりすればいいのでは。
トランジットのアニメーションは自分でやるとして。
270 :
名称未設定 :2014/02/21(金) 14:41:14.04 ID:Vp18/FL20
>>267 たぶんノベルゲーム的なもんでしょ?
それならViewControllerを次々と切り替えるよりか、
ViewControllerに表示するViewを切り替えるようにした方がいいんじゃない?
271 :
名称未設定 :2014/02/21(金) 17:37:41.77 ID:vK8zq4k/0
>>260 生成したレイヤーに線を描画してUILabelに追加する
272 :
名称未設定 :2014/02/21(金) 17:41:50.79 ID:vK8zq4k/0
>>267 戻るボタンを非表示にしてUINavigationControllerを普通に使え
273 :
名称未設定 :2014/02/21(金) 20:03:18.21 ID:z0HEg/mW0
呼び元画面のviewDidLoadでナビゲーションの戻るボタンを画像をこんな感じで画像を設定して、 UIImage* backImageOff = [UIImage imageNamed:@"back.png"]; [navigationItem.backBarButtonItem setBackButtonBackgroundImage:backImageOff forState:UIControlStateNormal barMetrics:UIBarMetricsDefault]; storyboard上でUITableViewから遷移させると次の画面に正しくボタン画像が表示されます。 さらに、同じ呼び元画面でボタンを追加して同じくstoryboard上でさっきとは異なる次の遷移元画面にsegueをつないでも ボタン画像が表示されません。 「<」も表示されなくてただ Back という文字だけ表示されます。 両方の画面に戻るボタン画像を表示する方法をどなたかご存じでしょうか
274 :
名称未設定 :2014/02/21(金) 20:42:46.42 ID:fGYPpVbd0
m ファイルのプロパティについて。 現在、hファイル (【AVに出た hkt48 に】iPhoneアプリ制作会社の面接に来た小娘をだましてAV撮影【なりたかった娘】.vob とかではない) に に外からアクセスするプロパティをおき、 .m のクラスエクステンションに _hkt48 みたいな形式でインスタンス変数を置いています。 これで何の問題もなく、外からアクセスできない .m にプロパティを作る意味がわかりません。
275 :
名称未設定 :2014/02/21(金) 20:46:25.68 ID:8lgoP7RM0
しね
276 :
名称未設定 :2014/02/21(金) 20:49:00.59 ID:Jl0LW+tB0
>>274 雑音が気にならないあなたには気にならないだろうから、気にしなくていいよ
277 :
名称未設定 :2014/02/21(金) 21:09:57.88 ID:Z9miQgVc0
アプリのインストール時に広告コードをリファラで受け取る事は可能でしょうか?
278 :
名称未設定 :2014/02/21(金) 22:42:32.41 ID:Omq0NqyZ0
>>277 いまいち意味が分からないけど、インストール時にはまだアプリは実行されないし、
インストールのためにあなたのサイトにアクセスするわけじゃないから、無理。
279 :
名称未設定 :2014/02/21(金) 23:03:59.98 ID:Z9miQgVc0
>>278 説明が下手ですみませんでした。
iTunesのアプリダウンロードへのダイレクトリンクに&rf=123456みたいなパラメータを付けてそのパラメータの値をアプリインストール時に得る事は出来ないでしょうか?
280 :
名称未設定 :2014/02/21(金) 23:12:26.08 ID:Jl0LW+tB0
>>279 >インストール時にはまだアプリは実行されないし
って言ってるんだからそれも無理だってわかるだろに??
元々が勝手に付けたパラメータをインストール後に(それもリファラ?)アプリが取得できるなんてどこの世界にもたぶん無いだろう
281 :
名称未設定 :2014/02/21(金) 23:17:54.52 ID:Omq0NqyZ0
282 :
名称未設定 :2014/02/21(金) 23:32:01.17 ID:Z9miQgVc0
283 :
名称未設定 :2014/02/21(金) 23:45:47.69 ID:Omq0NqyZ0
>>282 最初からそのリンク貼ってよ。
iOSではインストール時にコードは実行されないし、どこからインストールされたかの情報も渡されない。
(ってか、インストールしただけで実行されてしまうなんて怖すぎる。)
Androidに出来ることがiOSで出来て当然って思い込みもやめて欲しい。
284 :
名称未設定 :2014/02/21(金) 23:59:14.08 ID:DqN6xGKvP
>>283 新しいiTunesConnectでどこ経由でインストールされたのかがレポート表示されなかったかな。
285 :
名称未設定 :2014/02/22(土) 00:10:16.56 ID:aFrY5O1o0
286 :
名称未設定 :2014/02/22(土) 08:44:50.23 ID:XXEE0Ij+0
ボタンAのレイヤーに影を設定したら ボタンAの上に乗っけられている文字ラベルまで影がついてしまいます。 このラベルにだけ影を消したいのですがどうすればいいのでしょうか? ちなみにボタンAにラベルをaddsubviewしたという条件のもとでお願いします。
287 :
名称未設定 :2014/02/22(土) 13:18:14.15 ID:9uhr63pC0
NSNumber と long double(正負の浮動小数点)の変換(キャスト)で質問です。 [NSNumber longDoubleValue]というのもないし, [NSNumber numberWithLongDouble]というのもないし, [NSNumber doubleValue]と[NSNumber numberWithDouble]で代用するのですか?
288 :
名称未設定 :2014/02/22(土) 13:38:10.97 ID:Usft/MtQ0
289 :
名称未設定 :2014/02/22(土) 13:43:25.61 ID:Usft/MtQ0
あと、doubleなどのprimitive typeとNSNumberとの型変換は、キャストじゃなくてboxing/unboxingと言うべき。 NSArrayやNSDictionaryなどに格納するためにオブジェクトに詰め込んでる(箱詰め)って感じ。
290 :
名称未設定 :2014/02/22(土) 16:06:08.12 ID:xAaiW3ah0
質問なのですが、例えば PCでエクセルを使用して何らかのデータを作り、csvで保存したとします。 それをiphoneに転送して、ストレージに保存し、作成しているアプリで 読み込んでデータとして使用するという事をしたいのですが どうやって実現すれば良いのか教えて頂けますでしょうか?
291 :
名称未設定 :2014/02/22(土) 16:43:47.70 ID:Usft/MtQ0
>>290 iOSには、アプリ間で共有できるストレージは存在しない(例外は写真などほんの一部)。
ので、あなたのアプリが目的のデータを直接受け取れるようにする必要がある。
例えば、
・iTunes経由(UIFileSharingEnabled)
・メールなどの添付ファイル(CFBundleDocumentTypes)
・アプリが直接DropBoxなどにアクセスしてファイルを取得
・アプリがhttpなどのサーバになってファイルを受け取る
などの方法があるけど、どれも面倒だね。
292 :
名称未設定 :2014/02/22(土) 17:11:39.84 ID:NX2+aUFo0
>>273 複数segue使ってるとき 遷移先のNavibarに戻るボタン出す方法、誰かしりませんか?
293 :
名称未設定 :2014/02/22(土) 17:49:24.16 ID:Jek2feI50
>>292 >>273 もそうだけど、遷移元のコントローラのnavigationItem.backBarButtonItemを設定すれば、遷移先では遷移元のこれが使われ遷移先が別にいろいろあってもNavigation中なら問題無い
なにか別の問題/勘違いじゃないの
294 :
名称未設定 :2014/02/22(土) 18:40:29.43 ID:E9VFaG4E0
>>286 その条件では無理。UIViewのlayerのプロパティはsubviewのlayerにも反映される。
つーか、親Viewのlayerのsublayersに子Viewのlayerが加わる。
なので、影を付ける付けないでlayerのヒエラルキーを変えるしか無い。
具体的には親Viewのbuttonにlayerを2つ追加する。
CALayer *borderLayer = [[CALayer alloc] init]; //影を付けるlayer
borderLayer.frame = button.bounds;
borderLayer.borderWidth = 1.0;
borderLayer.cornerRadius = 5.0;
borderLayer.shadowOpacity = 1.0;
[button.layer addSublayer:borderLayer]; //影を付けるlayerを追加
[button.layer addSublayer:label.layer]; //影をつけないラベルのlayerを追加
295 :
名称未設定 :2014/02/22(土) 18:45:53.18 ID:E9VFaG4E0
しかし、こんなことするなら、こういう動作をするUIButtonのサブクラスでも作った方がいいだろうな。
296 :
名称未設定 :2014/02/22(土) 19:51:56.23 ID:E9VFaG4E0
>>286 影付きlayerを追加するなら、ラベルは普通にaddSubviewでもいいな。
文字だけのラベルならUIButtonのsetTitle:でもいいだろう。
要は親Viewの親layerで影を付けなきゃいけるはず。
297 :
名称未設定 :2014/02/22(土) 20:15:38.50 ID:BxO4PxHzP
どなたかの質問と重複していたら申し訳ないのですが、 初めてiPhoneアプリを制作する時ってどの位の期間掛かりましたか? ググると1週間で出来た!1ヶ月で出来た!等々見かけるのですが、 その人が特別なのか、それとも標準なのか判別できないのです たいていどの位掛かるものなのでしょう? 自分は大学の春休みを利用して3週間位勉強しているんですが、 まだチュートリアル弄って挙動を覚えてるところです...
298 :
名称未設定 :2014/02/22(土) 20:38:29.24 ID:XXEE0Ij+0
ちょっとしたメモ帳アプリでも すでに2ヶ月経過してます とはいっても毎日してるわけではないけど
299 :
名称未設定 :2014/02/22(土) 20:44:25.12 ID:Jek2feI50
>>297 今まで何をやっていたかによるだろうし、何を作るのかにもよるだろう
300 :
297 :2014/02/22(土) 21:01:27.68 ID:BxO4PxHzP
>>298 やっぱりその位時間かかるんですね
ありがとうございます
>>299 中学くらいの頃にC/C++は少し触ってて、
大学時はサークルの余興でC#でソフト書いたことあるくらいです
学部は文学部なので専門的なことは一切やってこず...
オセロもまともに作れないレベルなのですが、
一念発起してiOS開発を始めようかと
Any.Doの様なタスク管理系のソフトを作ろうかと思ってました
301 :
名称未設定 :2014/02/22(土) 21:20:06.74 ID:Jek2feI50
>>300 まあ、その経歴(?)だったら数ヶ月かかっても特に遅いってわけじゃないだろう
基礎的なことを時間がかかりおもしろくないだろうが、やっておくと後が楽に速くなるんじゃね。Appleのなんとかガイドを制覇理解しとくとか
302 :
297 :2014/02/22(土) 23:18:04.17 ID:BxO4PxHzP
>>301 ありがとうございます
余り気負わず、基礎を固めたいと思います
303 :
名称未設定 :2014/02/22(土) 23:43:45.29 ID:xAaiW3ah0
>>291 承知しました。
丁寧な説明ありがとうございました。
304 :
名称未設定 :2014/02/23(日) 23:32:51.74 ID:3kbkK5ip0
乱数のアルゴリズムってすごく複雑じゃないですか? 単に、1から100まで数字があってボタンを押した回数だけを乱数にして表示するってのでも 私は出来そうにない・・・ そこはobj-cではなく、C言語の世界になるのでしょうか?
305 :
名称未設定 :2014/02/23(日) 23:52:49.05 ID:brariSEH0
306 :
名称未設定 :2014/02/24(月) 01:04:48.88 ID:wHbE5sPR0
307 :
名称未設定 :2014/02/24(月) 01:07:36.92 ID:lrvgWSPDP
308 :
名称未設定 :2014/02/24(月) 03:09:06.33 ID:ruaGW2Kl0
コードの行数増えて行くと いじりたい部分を探すのに苦労しますけど なにかこの手間を省くいい方法ありますか??
309 :
名称未設定 :2014/02/24(月) 04:50:59.47 ID:AXhvabet0
310 :
名称未設定 :2014/02/24(月) 05:46:10.33 ID:E5HhyyRc0
>>308 xcodeでさ、
ソースコードの画面の左端をマウスでクリックすると、
それぞれのメソッド内を非表示にできるよ。
311 :
名称未設定 :2014/02/24(月) 08:19:26.98 ID:r4HCL8VDP
>>308 #pragma mark - Hogehoge
312 :
名称未設定 :2014/02/24(月) 08:22:57.54 ID:r4HCL8VDP
// MARK: Bug fix for nnnn // TODO: debug it
313 :
名称未設定 :2014/02/24(月) 08:43:59.07 ID:3Y1YDFDy0
// FIXME: なんかおかしい。。。
314 :
名称未設定 :2014/02/24(月) 13:04:01.30 ID:lrvgWSPDP
>>308 クラスの役割分担を考えたらそんなに膨大な行のクラスはできないと思う
315 :
名称未設定 :2014/02/24(月) 14:18:43.42 ID:d2KYW2cf0
>>308 #warning hogehoge
強制ワーニングだして修正を促しとけばおk
316 :
名称未設定 :2014/02/24(月) 15:31:53.99 ID:+GxhUQl50
あるNSDateに応じた閏年の判断(BOOL)もしくは日数(365||366)を簡単に取得するメッセージはないのでしょうか? NSCalendarのrangeOfUnit:NSDayCalendarUnit inUnit:NSMonthCalendarUnit forDate:[NSDate now] で取得できても良さそうなのですが,無理でした。 もちろん,((year % 4 is 0) && (year % 100 != 0) || (year % 400 == 0))を最終的に使えばよいことは前提の上。 コードの可読性から2,3行でできればよいのですが,意外と10数行前後かかります。 コードゴルフ的な質問ですが,知恵者いたらよろしくお願いします。
317 :
名称未設定 :2014/02/24(月) 16:44:06.04 ID:70DB4qr00
ボタンを押したらAppStoreのアプリでデベロッパーのページを開きたいんですが
- (IBAction)pushBtn:(id)sender {
NSURL *url = [NSURL URLWithString:@"
http://appstore.com/kaihatutarou/ "];
[[UIApplication sharedApplication] openURL:url];
}
これでテストしたみたところSafariが立ち上がって
このページはSafariでは表示出来ませんと出ます
Safariじゃなくて直接App Storeのアプリで表示するには
どうしたらいいでしょうか?
318 :
名称未設定 :2014/02/24(月) 16:52:18.61 ID:lZVDdFnS0
スキームで
319 :
名称未設定 :2014/02/24(月) 17:20:31.45 ID:d2KYW2cf0
>>316 #define hoge(year) ((year % 4 is 0) && (year % 100 != 0) || (year % 400 == 0))
じゃダメなんすか
ちなみにisってなんすか
320 :
名称未設定 :2014/02/24(月) 18:24:34.01 ID:MEvJbA6e0
>>316 NSDateComponents *comp = [calendar components:NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit fromDate:date];
comp.month = 2;
NSDate *date2 = [calendar dateFromComponents:comp];
NSRange range = [calendar rangeOfUnit:NSDayCalendarUnit inUnit:NSMonthCalendarUnit forDate:date2];
BOOL isLeapYear = range.length == 29;
でどうですか?
321 :
名称未設定 :2014/02/24(月) 18:43:13.98 ID:MEvJbA6e0
>>320 ((year % 4 is 0) && (year % 100 != 0) || (year % 400 == 0))
この判別式を使えば
NSInteger year = [calendar component:NSYearCalendarUnit fromDate:date];
BOOL isLeapYear = (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0));
ですね
訂正します。
322 :
名称未設定 :2014/02/24(月) 19:14:51.87 ID:ah28zgjz0
質問です cocoaPodを導入して作業をしていたのですが、The file “project.pbxproj” could not be unlocked. というエラーが表示されてxcodeが閉じられなくなりました。 色々ググってみてファイルのパーミッションを変更したりしたのですが解決できません。。。 どうすれば解決できますか?
323 :
名称未設定 :2014/02/24(月) 23:20:20.90 ID:kdHterKD0
- (NSString *)numSeparator:(NSNumber *)value { NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init]; [formatter setPositiveFormat:@"#,###.##########;0;-#,##0.##########"]; NSString *result = [formatter stringForObjectValue:value]; return result; } で3桁区切りの文字列を返しているのですが,returnのところで,formatterがメモリリークになると指摘されてしまいます。 ARCのときreleaseが使えないので,どうすればよいですか?
324 :
名称未設定 :2014/02/24(月) 23:43:07.24 ID:NtDQD6J/0
>>323 ARCでは出ないけど。もちろんAnalyzeでも
MRCでのAnalyzeで初めて出るけど、そらそうだだし
325 :
名称未設定 :2014/02/25(火) 01:44:46.97 ID:L6jytuURP
>>308 上のパンくずリストの先端からメソッド単位で飛べるじゃん
それでも物足りないなら、XVimだな
326 :
名称未設定 :2014/02/25(火) 04:23:36.26 ID:XJDNFF1y0
テーブルビューの特定の一つのロウのテキストラベルの表示を、0.3秒周期で更新したいのですが、テーブルのスクロールが引っ掛かってしまいます。 スムースなスクロールと両立する表示の更新方法は、どうしたら良いのでしょうか? ヒントでも良いので、お願いします。
327 :
名称未設定 :2014/02/25(火) 04:37:24.18 ID:Vpd81hSu0
スクロール中は更新しない
328 :
名称未設定 :2014/02/25(火) 07:07:35.08 ID:XJDNFF1y0
なるほど!ありがとうございました。
329 :
名称未設定 :2014/02/25(火) 08:03:06.49 ID:VZfq+4xC0
設計方法について質問です
UILBaelとかUIButtonとかの既存のUIクラスを継承して
自分独自のUIクラスを作ることってかなり基本的なことなのでしょうか??
自分は
Viewcontroller内で、例えばUILabelwを作成してからそのラベルを改良していきます。
なのでいつもコードの行数がすごく長くなります。
そこで
>>314 見て思ったのですが、
事前にUILabelのクラスを継承して、自分なりの改良を加えた独自クラスを作成します。
そしてそれをviewcontrollerに生成するという流れのほうが一般的なんでしょうか
330 :
名称未設定 :2014/02/25(火) 09:28:03.03 ID:IJyHSH5BP
>>329 使い回しがきいて、コピペしなくてすんで、可読性が高くなるならどんな設計でもいいんじゃないかな。
331 :
323 :2014/02/25(火) 10:38:31.90 ID:KmJxaLKt0
>>324 ありがとうございます。
ARCなのですが,元々MRCで作ったやつだから,
うまく,変換できなかったのかもしれません。
もう一回やり直してみます。
332 :
名称未設定 :2014/02/25(火) 12:02:53.73 ID:VZfq+4xC0
>>330 とくに常識的な手法というわけではないのですね
わかりました
333 :
名称未設定 :2014/02/25(火) 14:15:04.39 ID:tP70ZLyr0
どう勘違いしたのか知らんが自分でクラス改良して作るのは普通だと思うぞ
334 :
名称未設定 :2014/02/25(火) 14:44:45.07 ID:dBOL1ORz0
>>329 一つのクラス内でしか使ってない程度ならメソッド1つにぶち込んどけ
335 :
名称未設定 :2014/02/25(火) 15:08:41.77 ID:OWEINv2x0
リリースアプリにもコンソールにメッセージを出力したいんですがどういう手段が一般的でしょうか。 NSLog(...) はリリース時には出力しないようにしてます。
336 :
名称未設定 :2014/02/25(火) 17:35:21.00 ID:SD9LTFvOP
337 :
名称未設定 :2014/02/25(火) 18:10:14.37 ID:PY34aknD0
>>335 NSLog(...) が、コンソールにメッセージを出力したいのに一般的
デバッグのメッセージだから、NSLog(...) はリリース時には出力しないってだけでしょ。今のデバッグのメッセージで使っているNSLogをサラッと変える
338 :
名称未設定 :2014/02/25(火) 18:24:07.67 ID:mso7ts9C0
水平方向に並んだ2つのViewの横幅の比率が2対1だとして、画面を横に回転させた時も横幅の比率を2対1に維持したいのですが、 AutoLayoutでこのようなことは指定できるでしょうか?よろしくお願い致します。
339 :
名称未設定 :2014/02/25(火) 20:28:50.56 ID:oO3yKkS/0
質問です。Textviewのテキスト編集時のselect,select All,Pasteを日本語の選択、全選択、張り付けにしたいのですが、どうすればいいかわかりません。下らない質問ですみません。どなたか知ってればご教授ください。
340 :
名称未設定 :2014/02/25(火) 20:58:16.79 ID:PY34aknD0
>>339 設定 > 一般 > 言語環境 > 言語 が 日本語 なら特になにもしなくてもそうなる
設定 > 一般 > 言語環境 > 言語 が 日本語 でなくても強制的に日本語にしたけりゃ、
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:@[ @"ja" ] forKey:@"AppleLanguages"];
[defaults synchronize];
ってUserDefaultsに書き込んでおけば、
Localization native development region が日本語で日本語だけしかサポートしてないアプリでもちょろちょろ日本語にならない部分も日本語になる
341 :
名称未設定 :2014/02/25(火) 21:00:49.26 ID:oO3yKkS/0
>>340 おぉなるほど、丁寧な説明どうもありがとう御座います。
342 :
名称未設定 :2014/02/26(水) 00:36:27.85 ID:SfL4ac9W0
343 :
名称未設定 :2014/02/26(水) 02:17:05.97 ID:OSI/bd840
>>342 通用するかどうかは目的によって変わるけど、App Storeに出したいならXcode 5が必須。
344 :
名称未設定 :2014/02/26(水) 02:18:20.96 ID:YQjzUiQV0
その人のレベルや状況によるんじゃないかな。 「変数って何?」って人なのか、「アプリ内課金について知りたい!」って状況の人なのか。
345 :
名称未設定 :2014/02/26(水) 08:57:24.83 ID:u4HY+hxe0
動画広告を提供している広告ネットワークで有名所ってどこでしょうか?
346 :
名称未設定 :2014/02/26(水) 11:26:35.93 ID:fLrLiza+0
よくサンプルのコードであるクラスのカテゴリクラスだった時にそのファイル名が UIView+(カテゴリ).hだったりUIView-(カテゴリ).hだったりしますが、このプラスとマイナスでどちらを付けるかの基準ってありますか? 特に共通したルールが無い場合も個人の意見でお聞かせいただけると幸いです よろしくお願いいたします
347 :
名称未設定 :2014/02/26(水) 11:27:50.42 ID:R9bosY8zP
348 :
名称未設定 :2014/02/26(水) 11:52:35.50 ID:afCakoGy0
>>343 >>344 初心者向けのC言語本を終えたレベルです
Xcodeはちょっと前に入れてまだ4のままだったと思います
いまのところはAppStoreに出すことは考えていません
349 :
名称未設定 :2014/02/26(水) 16:18:24.89 ID:51UZL+7y0
>>346 Xcodeで新しいファイルを Objective-C category 選んで作ってみればわかるように、Appleが用意したテンプレートでは +
別に単にファイル名だから好きにしてもいいと思うけど
350 :
名称未設定 :2014/02/26(水) 16:49:43.59 ID:fLrLiza+0
351 :
名称未設定 :2014/02/26(水) 19:32:19.01 ID:X9E2yTMI0
SMS国際コード(日本なら+81)を取得をしたいのですが取得できるクラスは無いのでしょうか? NSLocaleクラスのReferenceを見たところ無いようなのですが…
352 :
名称未設定 :2014/02/26(水) 21:48:14.66 ID:RWzL9N9l0
353 :
名称未設定 :2014/02/26(水) 22:31:37.88 ID:X9E2yTMI0
354 :
名称未設定 :2014/02/27(木) 11:10:54.81 ID:ZD1/L/uW0
IBで事前に設置したUIButton「_button」押下時(Touch Up Insideイベント発生時)に、 メソッド「-foo:」を実行させたいと思っていますが、その為に下記3つの方法が浮かびました @ [_button addGestureRecognizer:[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(foo:)]]を実行 A [_button addTarget:self action:@selector(foo:) forControlEvents:UIControlEventTouchUpInside]を実行 B IBのConnections Inspector → Sent EventsからTouch Up Insideを-foo:に接続する この内、@以外はボタン押下とメソッド実行までの間に遅れが生じてしまいました しかし、コードをなるべく排除したいので、出来ればBを採用したいと思っています Bを採用し、かつ、遅れを生じさせない方法、あるいはその他の解決法はないでしょうか?
355 :
名称未設定 :2014/02/27(木) 11:30:53.73 ID:r58mZdfx0
遅れるって、TouchDownにしてみれば?
356 :
名称未設定 :2014/02/27(木) 12:05:20.15 ID:g6qPMo5b0
UILocalizedIndexedCollationクラスのプロパティ sectionIndexTitlesとsectionTitlesってなぜ中身が同じなのに二つあるんですか?
357 :
354 :2014/02/27(木) 12:18:19.98 ID:ZD1/L/uW0
>>355 TouchDownならメソッド実行が即座に行われますが、
お伝え出来ていなかった実用途には適用できないのです
情報の小出しをしてしまい、申し訳ありませんでした
その実用途とは「ボタン押下毎に、そのボタンに画像AとBを切り替えて割り当てる」というものです
この時、
1. 切り替えはボタンから指を放した瞬間に行う
2. 押下が短時間で何度も行われても、そのイベントを取り逃がさないようにする
という条件があります
よって1. より、TouchDownでは押した瞬間に発生してしまうので適用できません
また2. より、前述の遅れは許容できません
358 :
356 :2014/02/27(木) 13:02:47.72 ID:6pR/g2CU0
自己解決しました 日本語環境の場合sectionIndexTitlesとsectionTitlesは中身違ったんですね
359 :
名称未設定 :2014/02/27(木) 13:52:42.73 ID:Q1267i3m0
>>354 IBでTap Gesture Recognizerをボタンにドラッグ&ドロップして、Tap Gesture RecognizerのActionをfoo:に接続すれば、@と等価でコードレスになるんじゃね
360 :
354 :2014/02/27(木) 16:16:33.68 ID:1YADc1tBP
>>359 そういうのもIBの部品としてあるんですね、知りませんでした
そしてその方法でうまくいきました、ありがとうございます!
361 :
名称未設定 :2014/02/27(木) 17:41:58.66 ID:Q3kjaW7A0
>>338 できる。まさに同じことが公式のAutolayoutガイドに書いてある。
362 :
名称未設定 :2014/02/27(木) 20:34:24.36 ID:nkKa8z3L0
>>361 マジですか、ありがとうございます!
公式のドキュメントを正しく理解できてなかったみたいです。
363 :
名称未設定 :2014/02/27(木) 21:09:13.92 ID:NLWeWL8p0
メモリについて質問です。 以下のような、オブジェクト型の宣言とメモリの確保をそれぞれ別の場所で実行した場合は いつメモリが解放されるのでしょうか?? @interface MyUIViewController (){ UIImageview *uiv; //グローバル変数のように扱いたいのでここで宣言した } -(void) function { uiv = [UIImageview alloc]init]; 略・・・ } ちなみに確認ですが、以下にようにすると このfuncitonメソッドを呼び出して、終了する毎 にちゃんとメモリは解放されている。という認識でおkですよね -(void) function { UIImageview *uiv = [UIImageview alloc]init]; 略・・・ }
364 :
名称未設定 :2014/02/27(木) 21:24:07.69 ID:r58mZdfx0
>>363 MyUIViewControllerのインスタンスが解放される時に解放される。
要はその変数のスコープだね。
メソッドスコープならメソッドを抜ける時に解放だし、
インスタンススコープならインスタンスの解放のとき。
他のオブジェクトからリテインされてなければね。
365 :
名称未設定 :2014/02/27(木) 23:27:24.71 ID:r58mZdfx0
>>360 あそうだ、もう解決したと思うけど、
一つのボタンでTouchDownとTouchUpInsideにそれぞれtarget, actionを割り当てることもできるよ。
366 :
名称未設定 :2014/02/28(金) 11:00:50.01 ID:W+Tnwa7D0
367 :
名称未設定 :2014/02/28(金) 13:07:21.18 ID:F46AGGFg0
ナビゲーションバーの表示をメインビューでOFFに、設定ビューでONにしています。 メインビューで、 viewWillAppearで self.navigationController.navigationBarHidden = YES; viewWillDisapperでNOにしています。 これで綺麗に動いていたのですが、storyboadのautolayoutあたりをいじったからか、 設定ビューでホームボタンを押して、すぐにまたiphoneからアプリを起動させると 設定ビューが表示されたあとにナビゲーションバーが消えるようになってしまいました。 また、設定ビューからメインビューへナビゲーションバーの戻るボタンで戻ると、 画面の右上に黒い部分がチラッと表示されるようになってしまいました。 コードはいじっていないのでstoryboad側だと思うのですが解決方法を教えていただけませんでしょうか。
368 :
名称未設定 :2014/02/28(金) 15:37:24.64 ID:TV5v7zAr0
Nend を導入しようとしてマニュアル通りにLink Binary With Librariesを設定後、 ヘッダファイルに #import “NADView.h”を入れてみたところ 以下のエラーが出てしまいます。 lexical or preprocessor issue expected "FILENAME" or "<FILENAME>" エラーがググってもよくわからないのですが ファイルが見えてないと思われます。 framework 設定するところで特に気をつける事って有りますか?
369 :
名称未設定 :2014/02/28(金) 16:04:21.03 ID:TV5v7zAr0
解決しました。 ダブルコーテーションの文字コードが違ったようです。 typo しないように、きっちりコピペしてたのが間違いだったようです。 半日無駄にした・・・
370 :
名称未設定 :2014/02/28(金) 18:38:25.79 ID:wWjU8eKJ0
あるある。 エディタで色がおかしくて気がつくんだよな。
371 :
367 :2014/02/28(金) 20:12:52.62 ID:F46AGGFg0
自己解決しました。 ナブバーが消える問題は、元からあったコード上のミスでした。 黒い部分が見えるのは、 [self.navigationController setNavigationBarHidden:YES animated:YES] で見えなくなりました。 丸1日かかってしまいました。
372 :
名称未設定 :2014/02/28(金) 23:45:39.39 ID:1bPncd+I0
ダブルタップしたところを中心に画像(スクロールビューの上にある)を拡大する処理がよくわかりません。 下記のアップルのサンプルで取得した zoomRect を zoomToRect:animated: メソッドに渡せばいいように スクロールビュープログラミングガイドに書いてあります。 しかし、プログラミングガイドとクラスリファレンスをよみ、contentmode についても調べたのですが、 サンプルの前半部分でなんで割り算して縮小してるのかどうしてもわかりません。 ↓部分を解説してもらえないでしょうか? zoomRect.size.height = scrollView.frame.size.height / scale; zoomRect.size.width = scrollView.frame.size.width / scale; A utility method that converts a specified scale and center point to a rectangle for zooming - (CGRect)zoomRectForScrollView:(UIScrollView *)scrollView withScale:(float)scale withCenter:(CGPoint)center { CGRect zoomRect; // The zoom rect is in the content view's coordinates. // ↓ なぜ割り算するのかよくわからない。 zoomRect.size.height = scrollView.frame.size.height / scale; zoomRect.size.width = scrollView.frame.size.width / scale; // 中心から計算して左上原点を取得。 zoomRect.origin.x = center.x - (zoomRect.size.width / 2.0); zoomRect.origin.y = center.y - (zoomRect.size.height / 2.0); return zoomRect; } }
373 :
名称未設定 :2014/02/28(金) 23:53:38.53 ID:FdfBJmZZ0
アプリ内課金の処理でオススメのライブラリ教えて下さい
374 :
名称未設定 :2014/03/01(土) 00:05:54.76 ID:ZJX6+6ku0
>>372 拡大するエリア(ズームして表示する部分)を返してるから小さいんだろ。
375 :
名称未設定 :2014/03/01(土) 02:21:35.82 ID:C0SaGtev0
master detail のプロジェクトでcore data有効のテンプレートを利用した場合、初めから用意されているtableView はフルスクリーンになっていて、サイズを変えられないのですが、どうやれば変更できるのでしょうか?
376 :
名称未設定 :2014/03/01(土) 06:21:58.71 ID:L9cU1VF70
>>375 テーブルビューは基本的にフルスクリーン。
サイズ変えたければ新たにビューコントローラ作ってコンテナで埋め込むのが楽。
377 :
名称未設定 :2014/03/01(土) 09:18:42.90 ID:C0SaGtev0
>>376 コメントありがとうございます。
コンテナで埋め込む、というのは、もう少し詳しく言って頂けるとすれば、どの様にして行く作業になるのでしょうか。
378 :
名称未設定 :2014/03/01(土) 10:52:12.09 ID:5r2kIfW10
プログラミングを「作業」と表現する人は相手にしたくないな。
379 :
名称未設定 :2014/03/01(土) 11:26:33.55 ID:n2lwWhUZ0
>>377 Storyboard(Xcode 5のテンプレートならそうだろう)だと、Container ViewというViewパーツがある
とりあえず、Single View ApplicationでContainer Viewを置いて/追加して意味を理解してみる。理解したら応用できるだろう
380 :
名称未設定 :2014/03/01(土) 20:24:17.51 ID:wrvwN0dv0
storyboardってどうですか?使い方よくわからないのですが、だれかわかりやすく教えて a iPhoneアプリつくってみたいです。
381 :
名称未設定 :2014/03/01(土) 20:29:36.80 ID:suR3K0zw0
ここまで来ると荒らしでしかないな
382 :
名称未設定 :2014/03/01(土) 20:35:25.56 ID:n2lwWhUZ0
スルーすればいいことですよ
383 :
名称未設定 :2014/03/01(土) 21:15:31.54 ID:7KB+2ZUm0
課金の処理みんなどうやってんの?
384 :
名称未設定 :2014/03/01(土) 22:55:12.97 ID:JoSQ5NiP0
385 :
名称未設定 :2014/03/01(土) 23:20:57.84 ID:7KB+2ZUm0
386 :
名称未設定 :2014/03/02(日) 02:46:28.38 ID:QjrpF64j0
埋め込んで打ち込む。
387 :
名称未設定 :2014/03/02(日) 09:15:51.30 ID:QjrpF64j0
>>379 >
>>377 >Storyboard(Xcode 5のテンプレートならそうだろう)だと、Container ViewというViewパーツがある
>とりあえず、Single View ApplicationでContainer Viewを置いて/追加して意味を理解してみる。理解したら応用できるだろう
ありがとうございます。コンテナビューですね。
そうしますと、Master-DetailのプロジェクトのStoryboardを改変して対応するのは不可能ということでしょうか?
388 :
名称未設定 :2014/03/02(日) 11:41:33.57 ID:12DXOFVS0
389 :
名称未設定 :2014/03/02(日) 12:03:38.21 ID:QjrpF64j0
出来るということですね
390 :
名称未設定 :2014/03/02(日) 14:33:01.10 ID:ls5iFkzO0
Xcodeのstatic libraryを使って、画像やplist、xib、stroyboard等のリソースも使うプロジェクト側で認識できるようにしたいのですが、bundleをどのように使えばいいのかわかりません。 うまく、static libraryプロジェクト側のリソースをアプリプロジェクト側で認識する方法はないのでしょうか?
391 :
名称未設定 :2014/03/02(日) 14:57:20.38 ID:RHbNfvYT0
iADの収入確定申告するときって、住所なんて入力すればいいん?
392 :
名称未設定 :2014/03/02(日) 15:09:08.65 ID:cbRAl54/0
UIAlertViewでTextFiled付きを表示します。(UIAlertViewStylePlainTextInputで) その際にキーボードが必ず表示されてしまい、AlertViewのメッセージ内容が隠れてしまいます。 キーボードを表示させない? カーソルを当てない? などの解決方法を教えていただきたいです。
393 :
名称未設定 :2014/03/02(日) 15:09:53.07 ID:dhWSdJwk0
iphoneのホーム画面みたいに、長押しするとアニメーションして、cellを削除できるUICollectionViewのカスタムクラスとかどっかに無いですかね?
394 :
名称未設定 :2014/03/02(日) 16:01:25.98 ID:jNaoy4zgP
>>391 お金をくれるところの住所、外国であればHPに住所掲載されてるんで、そのまま入力かな
税務調査の時には聞かれたことないなー。彼らからしたら、どこの組織からいくら入金されたかが重要なので
395 :
名称未設定 :2014/03/02(日) 16:06:52.69 ID:12DXOFVS0
>>390 何を聞きたいのかイマイチわからんが、
・コードの部分の Static Library (単なるStatick LibraryでもFramework形式でも)
・リソースを納めた/突っ込んだ bundle
の二つを用意して、使う側はプロジェクトに両方を取り込む/追加するじゃね
396 :
名称未設定 :2014/03/02(日) 17:50:56.27 ID:elw9TSOl0
>>395 >リソースを納めた/突っ込んだ bundle
Static Libraryにxibファイルをbundleに入れて、アプリ側で使おうと思ってるんです。
ただ、xibファイルが読めないというエラーがでるので悩み中。
397 :
名称未設定 :2014/03/02(日) 18:24:53.00 ID:12DXOFVS0
>>396 >Static Libraryにxibファイルをbundleに入れて
いまいちわからんw
とりあえず、bundleにリソース突っ込んで。使う側でbundleをプロジェクトに追加すれば、Application作成時にbundleごとApplicationバンドルに勝手にコピってくれる(自動的にそういう設定になる)
で、パスが違うのだから、通常のアプリのリソースと同じようにはバンドル指定の省略はできないし、やMain Bundleを前提にしたのは使えないよ?
NSBundleと
UIViewControllerの
- (id)initWithNibName:(NSString *)nibName bundle:(NSBundle *)nibBundle
とか
Storyboardの
+ (UIStoryboard *)storyboardWithName:(NSString *)name bundle:(NSBundle *)storyboardBundleOrNil
とかでバンドルを指定、他バンドル中のパスをゲットしてそれを指定すればいいんじゃね
398 :
名称未設定 :2014/03/02(日) 18:38:43.37 ID:12DXOFVS0
399 :
名称未設定 :2014/03/03(月) 14:02:59.06 ID:GUbnuXQv0
初めて質問します 画面遷移についてです Storyboard上に3つのViewControllerを配置してます(それぞれA,B,Cとする)。 Storyboard上でSegueで繋がず、ボタンをおした時などに [self presentViewController: animated: completion:]; これで画面遷移をします。 A,B,Cを相互的に画面遷移出来るようにするにはどうすればいいでしょうか (AからB,Cにいけるし、BからA,Cにいけるし、CからA,Bに行けるようにする)。 回答よろしくお願いします --------- ・ひたすら[presentViewController: animated: completion:];を重ねれば出来るかもしれませんが、良くないこと何ですよね?たぶん。 ・[dismissViewControllerAnimated:YES completion:nil];の存在もわかっていますが、今回のような場合でどのように使えばうまくいくのか分かりません。 ※今回はA→B→C→Aとしたいわけではありません。このような場合はUnwindSegueを使うのはわかっています。
400 :
名称未設定 :2014/03/03(月) 15:05:11.37 ID:3XXYgs5g0
ABCをそれぞれ双方向にsegueで繋いで、各segueにidentifier AtoC とか付けて [self performSegueWithIdentifier:@"AtoC" sender:self]; とかすればいいんじゃないの?
401 :
名称未設定 :2014/03/03(月) 15:40:23.42 ID:kgJxsc4l0
実質、普通の「戻る」が無いUIなんだろう だったらpresentViewControllerを使わず自分で、ベースのViewControllerのviewにA,B,CのView Controllerのviewを出し入れすればいいような presentViewControllerとdismissViewControllerAnimated使う場合はトリッキーにはなるな
402 :
名称未設定 :2014/03/03(月) 15:48:27.38 ID:GUbnuXQv0
回答有難うございます
>>400 勝手な意見ですみませんが、今回はStoryboard上のSegueで繋ぎたくないです。
また、もしあなたの言うようにした場合、Viewがひたすら重ねられて、動作に影響がでませんか?(重くなるとか)
>>401 貴方が言う通り戻るがありません
>ベースのViewControllerのviewにA,B,CのView Controllerのviewを出し入れすればいいような
こうする場合、どのようにすればよいでしょうか。もしよろしければ教えて頂きたいです。
私も「1つの親ViewControllerでA,B,Cを子にして管理すればいいかな…」みたいな案は浮かんだんですが、方法が分かりませんでした。
403 :
名称未設定 :2014/03/03(月) 17:04:17.62 ID:3XXYgs5g0
>>402 こんな感じだろうな。
@implementation ViewController //ベースのViewController
- (void)viewDidAppear:(BOOL)animated {
UIViewController *vcA = [self.storyboard instantiateViewControllerWithIdentifier:@"vcA"];
[self presentViewController:vcA animated:YES completion:nil];
}
@end
@implementation ViewControllerA
- (void)AtoB {
UIViewController *vcB = [self.storyboard instantiateViewControllerWithIdentifier:@"vcB"];
[self presentViewController:vcB animated:YES completion:nil];
}
- (void)AtoC {
UIViewController *vcC = [self.storyboard instantiateViewControllerWithIdentifier:@"vcC"];
[self presentViewController:vcC animated:YES completion:nil];
}
@end
404 :
名称未設定 :2014/03/03(月) 17:11:56.73 ID:3XXYgs5g0
ただ、
>>403 だと毎回新しいインスタンスになるぞ。
起動中は同一のインスタンスを保持したいなら、ベースのViewControllerでABC全部取得して、
それをプロパティにするなりして、ABCにはdelegateを渡しておくとかかな。
>>401 viewだけベースにaddSubviewだと、viewControllerまでタッチが届かないんじゃないか?
405 :
名称未設定 :2014/03/03(月) 17:34:43.10 ID:GUbnuXQv0
>>403 >>404 コードを書いて頂きありがとうございます。
UIViewController *vcA = [self.storyboard instantiateViewControllerWithIdentifier:@"vcA"];
これを起動時だけに処理して(毎回処理しないようにして)、
[self presentViewController:vcA animated:YES completion:nil];
これだけを処理するようにすれば、メモリとか的に問題はありませんか?
-------
今質問している理由は、メモリなどによって動作に影響が出ないための質問で、
UIViewController *vcC = [self.storyboard instantiateViewControllerWithIdentifier:@"vcC"];
[self presentViewController:vcC animated:YES completion:nil];
これでひたすら重ねるだけの処理ならもう完成しています。
重ねた質問すみませんが、お願いします。
406 :
名称未設定 :2014/03/03(月) 17:44:03.51 ID:3XXYgs5g0
>>405 起動時にABC全部生成して保持なら問題ないよ。つかその方がいい。
毎回同一のインスタンスをpresentするだけだろ。
407 :
名称未設定 :2014/03/03(月) 17:53:56.55 ID:3XXYgs5g0
>>405 いや、やっぱだめだわw
違う方法でやろうw
408 :
名称未設定 :2014/03/03(月) 17:55:40.51 ID:kgJxsc4l0
>>402 viewControllerAorBorC.view.frame = baseViewController.view.bounds;
[baseViewController.view addSubview:viewControllerAorBorC.view];
[baseViewController.subviews[0] removeFromSuperView]; // すでにあるAorBorC
が基本
トランジッションが必要なら UIView animateWithDuration: と viewControllerAorBorC.view.frame ちょちょいと
viewControllerAorBorCをかっちょよく保持したかったら UIViewController の addChildViewController: 使ってみるとか(baseViewControllerのインスタンス変数/プロパティでいいと思うけど)
ちょっと付け加えるだけかな
409 :
名称未設定 :2014/03/03(月) 17:56:45.80 ID:R1rZKGdL0
AからBを表示してからAを表示するのにdismissじゃ駄目な理由は?
410 :
名称未設定 :2014/03/03(月) 17:59:25.05 ID:kgJxsc4l0
>>408 ×[baseViewController.subviews[0] removeFromSuperView]; // すでにあるAorBorC
○[baseViewController.view.subviews[0] removeFromSuperView]; // すでにあるAorBorC
まあ、ついでだから
// すでにあるAorBorCを削る
if( [baseViewController.view.subviews count] > 1 )
○[baseViewController.view.subviews[0] removeFromSuperView];
411 :
名称未設定 :2014/03/03(月) 18:02:07.16 ID:3XXYgs5g0
>>405 ベースのViewContorollerがABCをpresent, dismiss またはhiddenを切りかえるのがいいかな。
なんだ普通じゃんw
つーか、
>>400 の方法でもインスタンスは増えないんじゃね?
412 :
名称未設定 :2014/03/03(月) 18:09:41.80 ID:kgJxsc4l0
戻る為のスタック(?)のことじゃね
413 :
名称未設定 :2014/03/03(月) 18:12:39.99 ID:kgJxsc4l0
あ、performSegueWithIdentifier: なら新しいViewControllerのインスタンスが...??
414 :
名称未設定 :2014/03/03(月) 18:27:46.20 ID:3XXYgs5g0
どーもViewControllerだとうまくいかんなあw
viewだけaddSubViewするのなら問題ないんだが。
タッチを取得したい場合はカスタムビュー側でやるってことで。
>>413 インスタンス増えるのかな?
415 :
名称未設定 :2014/03/03(月) 18:40:27.43 ID:kgJxsc4l0
>>414 たぶん、普通のだったらControllerのキャッシュとか既存のとか考えないだろうから新しいインスタンスかと
Custom Segue だったら好き勝手に/増やさずにできると思うけど、Framework内部的にどうかなあ
416 :
名称未設定 :2014/03/03(月) 19:02:26.33 ID:kgJxsc4l0
>>404 見落としてた
>viewだけベースにaddSubviewだと、viewControllerまでタッチが届かないんじゃないか?
viewに対するVIewControllerだからあ、そういう制約はないよ。Container Viewも同じようなことかと。知らんけどw
ただ、viewをaddSubviewすれば、viewは保持してくれるから後は知らんってできるけど、View Controllerは一緒には保持してくれないので、保持する必要がある
417 :
名称未設定 :2014/03/03(月) 19:06:26.08 ID:3XXYgs5g0
>>405 ,416
やっぱり、ABCのviewだけベースにaddSubviewするのがシンプルで良さそうだねw
メソッドは一個にまとめられると思うけどこんな感じかな↓
@interface ViewController : UIViewController
- (void)AtoB;
- (void)AtoC;
- (void)BtoC;
- (void)BtoA;
- (void)CtoA;
- (void)CtoB;
@end
@interface ViewControllerA : UIViewController
@property (nonatomic) ViewController *vc;
@end
(以下BCも同様)
418 :
名称未設定 :2014/03/03(月) 19:14:27.66 ID:8On5UDHM0
Appleすげーな、SiriでCarPlayだとよ。 何の会社なんだかw
419 :
名称未設定 :2014/03/03(月) 19:36:50.16 ID:xsD4KnwQ0
420 :
名称未設定 :2014/03/03(月) 20:49:33.64 ID:GUbnuXQv0
ID:kgJxsc4l0
ID:3XXYgs5g0
ID:xsD4KnwQ0
ありがとうございます。こんなに考えて頂けるとは思っていませんでした。
色々試してみます。
>>409 A→B→Aならdismissでいいんですが、
A→B→C→Aの人とかA→C→B→C→Aと進む人だって考えられるので、dismissは使えないかなと思っています。
421 :
名称未設定 :2014/03/03(月) 21:02:27.51 ID:kgJxsc4l0
>>420 - (UIViewController *)viewControllerInStack:(Class)class
{
UIViewContrller *viewController = self;
while((viewController = viewController.presentingViewController) != nil){
if([viewControllar isKindOfClass:class])
return viewController;
}
return nil;
}
これは ViewControllerA ViewControllerB ViewControllerC って、A,B,Cクラス毎にしている場合だけど、別の判別方法があるなら、それで
てな風に現在スタックしているViewControllerを遡って探すことはできるので、
見つかったらそこへdismiss(見つかったViewControllerインスタンスでdismiss)、
見つからなかったらpresentingってできるよ
トランジッションで無しかなあと思ったんだけどw
422 :
名称未設定 :2014/03/04(火) 02:27:49.26 ID:MTayrOWdi
初心者です。 メソッドの実装についてです。 戻値がない場合、最後は [変数 メソッド]かドット構文のアクセスで 終わりますよね。 戻り値がある場合は例えば、-(nsstring*)メソッド{ Nsstring *変数=[変数 メソッド] と言った形で代入する形になると言うことで 正しいですよね?
423 :
名称未設定 :2014/03/04(火) 02:54:08.34 ID:tDEgXXjb0
Objective-Cでは[クラス メッセージ:変数]が メッセージ送信の普通の書き方なので何を言ってるのか読解できません。 「最後は〜終わりますよね」←(何が) 「戻り値がある場合は」←(returnの話ではなくて、インスタンスのプロパティに数値を入れる話でしょうか?)
424 :
名称未設定 :2014/03/04(火) 03:44:19.37 ID:8geA+0EO0
戻り値の有無で変数に代入するかどうか変わりますよね的な質問じゃね
425 :
名称未設定 :2014/03/04(火) 03:57:47.18 ID:xh7HNgEY0
寝れないしヒマだから書き込みにきてみた
>>422 メソッドの実装の話なら
- (void)xxxxのvoidは戻り値なし(呼び出しだけ
- (NSString *)yyyyはreturnで呼び出し元に何かしら処理したNSStringを返す
プロパティに入れて終わるかどうかなんて作りたいメソッドの内容次第だしな
クラス内のメンバ変数に値代入して終わることもある
他のメソッドを参考に※こんな作りもあるのか※を学ぶのをオススメするよ
426 :
名称未設定 :2014/03/04(火) 04:08:24.69 ID:tDEgXXjb0
まともなObjective-C/iOSプログラミングの本で メッセージをメソッドと言ってるわきゃないし メソッドとかいう言葉を使う言語を知ってる人間が return知らないわけがないし さらには釣りにしてもイミフ過ぎるというこの。
427 :
名称未設定 :2014/03/04(火) 06:19:30.85 ID:x5RYyB9H0
>>422 あー意味わかる。それで正しい。
メソッドは -(NSString*)メソッド{ return ストリング; } の形に対して
メッセージ式は NSString *変数=[変数 メソッド]; の形か、[変数 メソッド]; でもいい。
戻り値は受け取らなくてもいい。
ドット構文でもこの形になるよ(ゲッター)
428 :
名称未設定 :2014/03/04(火) 08:49:57.29 ID:06S+pgMtP
意味わからない
429 :
名称未設定 :2014/03/04(火) 09:20:54.68 ID:MTayrOWdi
ごめんなさい。勉強不足でメッセージはメソッド 以外の場合しか使ったことないんです。 他の場合があるのでしょうか。 レシーバはクラスや変数、プロパティ 辺りを利用したことはあります。
430 :
名称未設定 :2014/03/04(火) 09:41:58.82 ID:x5RYyB9H0
いや、訊きたかったのは「メソッドの実装」じゃなくて、「メソッドの呼び方」でしょ。
回答は
>>427
431 :
名称未設定 :2014/03/04(火) 13:58:05.44 ID:QvOgiZvp0
以前質問させていただいた
>>420 です。
いらないかもしれませんが、一応どうするか報告させていただきます。
[self addChildViewController:VC];
[self.view addSubview:VC.view];
[VC didMoveToParentViewController:self];
[self transitionFromViewController:VC toViewController:VC ... ];
ここらへんのをうまく使ってできました。
回答して頂いた方々ありがとうございました。
432 :
名称未設定 :2014/03/04(火) 14:46:35.68 ID:Lni7sFEG0
マスターディテイルのテンプレートプロジェクトで、マスタービューコントローラにある-(void)prepareForSegue:sender:の中に、 if([[segue identifier] isEqualToString: @"showDetail"]) {....} とあります。 この[segue identifier] として設定されている筈の行く先のIDとしての @"showDetail" は、多分ディテールビューコントローラ中か、そのストーリーボードの中だろうと思って、検索やインスペクタで探したんですが見つけられません。 どこで設定されているのでしょうか?
433 :
名称未設定 :2014/03/04(火) 15:14:24.25 ID:a0TRx0a3P
>>432 ストーリーボードでviewControllerをつないでるsegueの矢印のid。
434 :
名称未設定 :2014/03/04(火) 15:50:59.55 ID:vqx6ojgR0
プログラミング始める前に日本語始めた方が良い子が多いスレだな
435 :
名称未設定 :2014/03/04(火) 16:11:48.19 ID:Lni7sFEG0
segue は行き先じゃないですね。 行き先と云うよりも、移動そのものですかね。知識不足でした。ありがとうございました。
436 :
名称未設定 :2014/03/04(火) 16:59:49.03 ID:FrwVabsC0
>>397 - (id)initWithNibName:(NSString *)nibName bundle:(NSBundle *)nibBundle
Bundleで設定するパスってどうやって決まるんでしょうか。
プロジェクト内に持ってる事はわかってるんですが、どこに配置されるか不明です。
437 :
名称未設定 :2014/03/05(水) 01:06:38.39 ID:Ammfezfv0
>>438 アプリケーションバンドルの直下。余計なことをしなければ
てか、Hoge.bundle のパスを知りたければ、
[[NSBundle mainBundle] pathForResource:@"Hoge" ofType:"bundle"];
Hoge.bundle 中の Hoge.nib が目的のViewControllerのnibだとすると、
NSBundle *hogeBundle = [[NSBundle mainBundle] pathForResource:@"Hoge" ofType:"bundle"];
[[UIViewController alloc] initWithNibName:@"Hoge" bundle:hogeBundle;
>プロジェクト内に持ってる事はわかってるん
あんま全く関係無いけどね。ipaファイル作って、拡張子をzipに変えて、解凍して、.appの中身を見れば理解できるだろう
438 :
名称未設定 :2014/03/05(水) 01:07:53.12 ID:Ammfezfv0
439 :
名称未設定 :2014/03/05(水) 01:13:55.00 ID:Ammfezfv0
>>437 NSBundle *hogeBundle = [[NSBundle mainBundle] pathForResource:@"Hoge" ofType:"bundle"];
足りないっ
NSBundle *hogeBundle = [NSBundle bundleWithPath:[[NSBundle mainBundle] pathForResource:@"Hoge" ofType:"bundle"]];
440 :
名称未設定 :2014/03/05(水) 19:08:11.74 ID:h/FhwZon0
441 :
名称未設定 :2014/03/05(水) 19:13:26.33 ID:2n5ihlgx0
442 :
名称未設定 :2014/03/05(水) 19:35:39.69 ID:h/FhwZon0
>>441 ヘッダーは元々一つつけてます。(画像見えづらいですが・・)
//section番目の名前を返す
-(NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section{
if(section==0){
return @"目標";
}
else return NULL;
}
空のフッダー?以下のように一応して追加してみましたが特に変化ありませんでした。
でも・・・
styleをUITableViewStylePlainにしたら望み通りのビジュアルになりました。
443 :
名称未設定 :2014/03/05(水) 20:08:50.59 ID:l4fePvBx0
空のヘッダかフッタとは [[UIView alloc] init] のことだろう。nil(インスタンスの場合はNULLでなくnil)は何も無しだろう
444 :
名称未設定 :2014/03/05(水) 20:18:42.65 ID:Xm0RHRHn0
AFNetworkingを使って複数の非同期ではなく同期通信をしたいのですが 一般的にはどのような手段をとればいいでしょうか NSURL*url=[URLList objectAtIndex:0]; AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; [manager GET:url parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) { //通信が終われば次の通信を開始したい } failure:^(AFHTTPRequestOperation *operation, NSError *error) { }];
445 :
名称未設定 :2014/03/05(水) 20:52:12.18 ID:3DEKzcR80
質問なのですが、プリインストールされているEメールから アカウント情報(使用しているメールアドレス、サーバー名等)を取得することは可能でしょうか?
446 :
名称未設定 :2014/03/05(水) 20:54:48.75 ID:l4fePvBx0
>>444 同期って、単に順番に一個ずつでええんやな?
- (void)getForURLIndex:(NSInteger)index
{
if(index >= [URLList count])
return;
NSURL*url=[URLList objectAtIndex:index];
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
[manager GET:url parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {
dispatch_async(dispatch_get_main_queue(), ^{ [self getForURLIndex:(index + 1)]; });
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
}];
}
一般的かどうかは知らん。AFNetworkingってなんのこっちゃと思ったで
447 :
名称未設定 :2014/03/05(水) 21:00:01.60 ID:l4fePvBx0
>>445 そんなの何に使うの?っていうのからそんなの提供してないと思われる
448 :
名称未設定 :2014/03/05(水) 21:11:29.10 ID:3DEKzcR80
>>447 返信ありがとうございます。
Line等のアプリでメールアドレスの認証処理があるのですが、
それをなんとか実装できないかと思いまして。
簡単に言うと
メールを送信する
↓
認証番号が記述されたメールが返ってくる
↓
認証番号を入力するとメールがサーバーに登録される
という処理です。
449 :
名称未設定 :2014/03/05(水) 21:17:10.48 ID:l4fePvBx0
>>448 ようはアプリからユーザのアカウントでメールを送れればいいんでしょ?そういうのは必要だろうからと当然あるよ
MFMailComposeViewControllerとか
450 :
名称未設定 :2014/03/05(水) 21:23:11.87 ID:l4fePvBx0
でも、普通は メール「アドレス」をサーバに送信する ↓ 認証番号が記述されたメールがサーバから送られる ↓ 認証番号を入力しサーバに送信すると 正規なメールアドレスとして認められ サーバーに登録される じゃないの?
451 :
名称未設定 :2014/03/05(水) 21:25:10.83 ID:3DEKzcR80
>>449 MFMailComposeViewControllerだとmodalでメーラーが起動しますよね?
それだと本文の認証番号がユーザーに見えてしまいます。
なのでメールアドレスが適当でも認証番号をユーザーが取得できることになると思います。
その他の方法だと公開されているMailCoreなどのライブラリを使用する
という方法があるのですが、これだとメールアドレス、サーバー名、ポート番号などの情報を
ユーザーが入力しないといけないです。
もし、iPhoneからメールアドレス、サーバー名、ポート番号などの情報を取得できればライブラリを
使用して実装できるのではと思ったのですが…
452 :
名称未設定 :2014/03/05(水) 21:28:22.13 ID:3DEKzcR80
>>450 そうですよね。
わかりました、ありがとうございました。
453 :
名称未設定 :2014/03/05(水) 23:24:59.60 ID:Z7807s+x0
Google Place APIについてですが、お分かりになる方いらっしゃいましたらよろしくお願いします。 使用回数の制限を回避するため、Google map JavaScript APIを使用してテキスト検索結果のを得て、GMSMapviewに表示することは可能なんでしょうか? もしくは、代替手段として使用回数制限に引っかかった場合はMapKitから得た検索結果を表示することも考えています。
454 :
名称未設定 :2014/03/06(木) 04:03:42.51 ID:wge9yPdy0
保険金をかけた夫の車を操作するAPIとかはないのでしょうか?
455 :
名称未設定 :2014/03/06(木) 13:12:57.95 ID:WIMiaPGh0
すみません、審査もう通っていてリリース待ち状態のアプリを取り下げる方法はありませんでしょうか 元々公開しているアプリで、公開しているものはそのままで今回のバージョンアップ版を消したいです よろしくお願いします
456 :
名称未設定 :2014/03/06(木) 16:58:29.06 ID:WIMiaPGh0
自己解決しました BinaryDetailsのReject This Binaryから行けました お騒がせしました
457 :
名称未設定 :2014/03/07(金) 17:13:46.87 ID:PAkBoakj0
NavigationBarの位置を下げて上に広告を表示するにはどうやれば良いですか?
458 :
名称未設定 :2014/03/07(金) 18:04:07.37 ID:uC0xrHQv0
>>457 メインコンテンツはContainer View内でやることにし、Container Viewのframeをちょっと変えれば簡単にできそう
だが、そんなUI気持ち悪いからやめた方がいいと思う
459 :
名称未設定 :2014/03/07(金) 23:14:15.70 ID:NbOpQ7Cv0
UIWebViewの中でyoutubeの動画を全画面再生中にロゴなどの画像を画面上に表示したいのですが、どのように実装すればいいのでしょうか?
460 :
名称未設定 :2014/03/08(土) 17:45:16.65 ID:y9M1q5uA0
&#65279;こんにちわ 自作アプリケーションから既製アプリケーションを起動させたいと思っております。 例えば、メールアプリへメールの本文情報をURLスキームで渡して起動するまでは 自作アプリで制御できるのですが、その後、自作アプリへシームレスに戻すことが 出来ません。 最悪、 自作アプリ→既製アプリ起動→5秒後に自作アプリへ自動復帰 でもかまわないのですが、方法はあるのでしょうか? そもそも既製アプリが立ち上がった段階で、自作アプリへの復帰は 出来ないものでしょうか? ちなみに、自作アプリ→自作アプリ2→自作アプリへの復帰は URLスキームで可能でした。 どなたかお知恵をおかし頂ければ幸いです
461 :
名称未設定 :2014/03/08(土) 17:49:52.11 ID:aN0GpTEs0
リジェクトされる。前された。
462 :
名称未設定 :2014/03/08(土) 18:32:18.82 ID:PImG6bKu0
>>460 既製アプリってのがiOS純正アプリってことなら無理じゃね
他人(他者)がつくったアプリってことなら例えば検索ハブってアプリが
検索ハブ -> 大辞泉 -> 検索ハブ って感じでできてる
やり方は力になれん
463 :
名称未設定 :2014/03/08(土) 18:33:27.07 ID:PImG6bKu0
× 他者 ○ 他社
464 :
名称未設定 :2014/03/08(土) 23:00:29.66 ID:X6WiI1YP0
>>454 自己解決しました。
iPhoneにこだわる必要なかったですね。
465 :
名称未設定 :2014/03/08(土) 23:51:02.27 ID:TT9RAzuL0
広告を着けた場合サードパーティなんたらって聞かれる奴はYESにするんです?
466 :
名称未設定 :2014/03/09(日) 00:45:40.91 ID:pce9rx+WI
UIScrollViewにスクロール対象としてUIViewの子クラスをaddしています。 上記UIViewの子クラスに対して、NSTimerで定期的にsetNeedsDisplayを呼び出して 描画したいんですが、drawRectがまったく呼ばれません。 ScrollView上のUIViewはdrawRectが呼ばれないという制限などがあるのでしょうか? ここ3日くらいハマっててとても困っています。
467 :
名称未設定 :2014/03/09(日) 02:44:06.15 ID:x5Bm+sYJ0
>>466 ない。そんな制限があったらdrawRectなんて使えない/存在意義が無いやん
特定のクラス(UIImageView)ではdrawRectそのものが呼ばれないってのはあるがそれとは別だしな
UIScrollViewとUIViewの子クラスだけの新しいプロジェクトで試してみたら?
468 :
名称未設定 :2014/03/09(日) 06:59:35.67 ID:/SJKhM6z0
>>466 NSTimer *timer = [NSTimer timerWithTimeInterval:0.3 target:myView selector:@selector(setNeedsDisplay) userInfo:nil repeats:YES];
[[NSRunLoop currentRunLoop] addTimer:timer forMode:NSRunLoopCommonModes];
469 :
名称未設定 :2014/03/09(日) 09:33:59.50 ID:hETMBEq30
470 :
名称未設定 :2014/03/09(日) 14:33:07.04 ID:0IsgJrYj0
macアドレスのようば、ユニークな番号てありますか? 借りにあったとしたらそれらをコード内で取得することは可能ですか? 例) AさんとBさんのiphoneではそれぞれ違う数字が出力されるようにしたいです。
471 :
466 :2014/03/09(日) 15:00:30.85 ID:pce9rx+W0
>>467 ,468
ありがとうございます。
UIScrollViewのコンテンツはUIImageViewを祖先にもっていたのですが、UIViewに変更したところ drawRectが呼ばれるようになりました。
472 :
名称未設定 :2014/03/09(日) 15:19:50.00 ID:hETMBEq30
>>470 udidはもうiOS7から使えないから(エンタープライズアプリで使ってるのだが・・・)
UIDevice の identifierForVendor を使うのでいいかと
473 :
名称未設定 :2014/03/09(日) 16:11:17.09 ID:/bOFmtQA0
474 :
名称未設定 :2014/03/09(日) 18:31:06.50 ID:0IsgJrYj0
475 :
453 :2014/03/09(日) 18:54:35.50 ID:uqYjOeE00
少し進展ありましたので、後の人の為に書いておきます。 結局googlePlaceAPIはiOSに対応していないことが分かりました。ご迷惑をおかけしました。
476 :
名称未設定 :2014/03/09(日) 20:24:16.32 ID:m/ffx+iD0
>>470 mac アドレスとかいうやつと素人。
mac アドレスのことを Wi-Fiアドレスといえというのがアップル様の教え。
NSString *uuid = [[NSUUID UUID] UUIDString];
これで xcode が自動でつくるアプリのフォルダ名みたいなランダムな文字列が取得できる。
477 :
名称未設定 :2014/03/10(月) 00:06:18.06 ID:s7te88IH0
>>475 単にWebAppAPIなんだからiOSがあとか関係無さげだが。ライセンス的にどうなのか知らんが
まあ「使用回数の制限を回避」なんて発想で使おうとするのは間違っていると思うが
478 :
名称未設定 :2014/03/10(月) 02:54:30.02 ID:4mUN8V6E0
全く同一のUI構成のアプリってダメだよね? ガワが同一でWebからデータ取ってきて表示するだけのアプリなんだけど。
479 :
453 :2014/03/10(月) 07:49:30.95 ID:W6y1LJrs0
480 :
名称未設定 :2014/03/10(月) 10:58:01.43 ID:s7te88IH0
481 :
名称未設定 :2014/03/10(月) 11:03:33.97 ID:hNCFJRWh0
よくApp Storeの商品紹介画像で iPhoneを指でつまんでその中にスクリーンショットがあるというのがありますが そういう加工する定番アプリとか素材集って あるんでしょうか? 興味があるので教えてください。
482 :
名称未設定 :2014/03/10(月) 12:50:51.12 ID:uqlu9C9R0
質問なのですが、以下のコードを実行した時エラーとなるのですがこの場合NSMutableDictionaryにsetValueせず NSData *data = [NSKeyedArchiver archivedDataWithRootObject:hoge];とするしかないのでしょうか? //HogeはNSObjectを継承したクラス Hoge *hoge = [[Hoge alloc] init]; NSMutableDictionary *dict = [[NSMutableDictionary alloc] init]; [dict setValue:usersFind forKey:@"key"]; // NSDictionaryをNSDataへ //ここでエラー NSData *data = [NSKeyedArchiver archivedDataWithRootObject:dict]; -[Hoge encodeWithCoder:]: unrecognized selector sent to instance 0x15efbb40 2014-03-10 12:42:40.026 ChatApp[1301:60b] *** -[NSKeyedArchiver dealloc]: warning: NSKeyedArchiver deallocated without having had -finishEncoding called on it. 2014-03-10 12:42:40.027 ChatApp[1301:60b] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[Hoge encodeWithCoder:]: unrecognized selector sent to instance 0x15efbb40' *** First throw call stack: (0x2e7a1e83 0x38afe6c7 0x2e7a57b7 0x2e7a40af 0x2e6f2dc8 0x2f11c701 0x2f11d8df 0x2f11d5b1 0x2f11c701 0x2f122b21 0x3b555 0x70235 0x5a8d5 0x2f185e4b 0x2e76cf1f 0x2e76c3e7 0x2e76abd7 0x2e6d5471 0x2e6d5253 0x3340f2eb 0x30f8a845 0x1942d 0x38ff7ab7) libc++abi.dylib: terminating with uncaught exception of type NSException
483 :
名称未設定 :2014/03/10(月) 13:34:32.49 ID:EYcoZMkm0
>>482 3行目のはできるの?
>-[Hoge encodeWithCoder:]: unrecognized selector
なんだから
NSCodingプロトコルに準拠する必要があるのではないかな。
484 :
名称未設定 :2014/03/10(月) 13:46:58.17 ID:uqlu9C9R0
>>483 返答ありがとうございます。
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:hoge];
でも駄目でした。
>NSCodingプロトコルに準拠する必要があるのではないかな。
そのようですね。
NSCodingというのがよくわからないので調べてみます。
ありがとうございました。
485 :
名称未設定 :2014/03/10(月) 15:18:59.61 ID:73N9F7RJ0
iphoneのホーム画面でアプリを掴んだまま画面端へいくと 別の画面へ移動できますがあの仕組みはどうなってるんでしょうか・・・ 画面移動する際にviewcontrollerも入れ変わっているのでしょうか?
486 :
名称未設定 :2014/03/10(月) 15:37:28.68 ID:s7te88IH0
掴んだままじゃなく、普通に画面(ページ?)移動するのを見ると、普通にUIScrollViewなんじゃね
487 :
名称未設定 :2014/03/10(月) 15:41:09.10 ID:73N9F7RJ0
ああなるほど。横画面方向へのスクロールビューか!!
488 :
名称未設定 :2014/03/10(月) 16:15:09.92 ID:VVwOicY+0
全部自分で作ってもいいんだよ。 フレーム単位に画像を表示していくだけだし。
489 :
名称未設定 :2014/03/10(月) 16:56:12.16 ID:v+VWo/Tj0
iPhoneアプリに印刷ボタンを仕込んで、 A4用紙にプリントさせるようにすると、 Segmented Controlの中が色で塗りつぶされて、 文字が判別できないようになるんですが、 これは仕方ないんでしょうか。
490 :
名称未設定 :2014/03/10(月) 17:32:11.05 ID:ggJvXnGj0
UIImageをコードで弄ってるとデバイスを傾けた時になぜか画像も勝手に回転するのはなぜなんですかね たとえばカメラロールへの保存とかUIImageViewにsetする時とか 画面の向きをロックしてると起こらない
491 :
名称未設定 :2014/03/10(月) 17:41:18.48 ID:QebuC5ZN0
回転させてるのはUIViewControllerだろ。
492 :
名称未設定 :2014/03/10(月) 18:24:14.15 ID:uqlu9C9R0
blockについて質問です。 iPhoneの電話帳からデータを取得するとき、 初回だとこのアプリからのアクセスを拒否するか許可するかのアラートが表示されるのですが、 ABAddressBookRequestAccessWithCompletion(addressBookRef, ^(bool granted, CFErrorRef error) { status = granted; }); が実行された後にreturn status;という流れであっているのでしょうか? - (BOOL)getAuthorizationStatus { __block BOOL status; CFErrorRef *cfError = NULL; //アドレス帳へのアクセス許可 ABAddressBookRef addressBookRef = ABAddressBookCreateWithOptions(NULL, cfError); if (cfError) { return NO; } else { //アプリのアドレス帳使用許可の確認をしているかしていないか ABAddressBookRequestAccessWithCompletion(addressBookRef, ^(bool granted, CFErrorRef error) { status = granted; }); } return status; }
493 :
名称未設定 :2014/03/10(月) 19:05:54.84 ID:s7te88IH0
>>492 ABAddressBookRequestAccessCompletionHandler中でと、ABAddressBookRequestAccessWithCompletion直後にNSLogしてみると、非同期のようだけど
ABAddressBookRequestAccessWithCompletionの直後が先に行なわれる。それだと、常時statusに取得したいのが入らずに(ごみを?)返していることになる
494 :
名称未設定 :2014/03/10(月) 20:02:37.35 ID:uqlu9C9R0
>>493 返事ありがとうございます。
そうですかメソッドを- (void)getAuthorizationStatusにして
ABAddressBookRequestAccessWithCompletion(addressBookRef, ^(bool granted, CFErrorRef error) {
//ここで処理をする
});
このblockの中で処理をした方が良さそうですね。
495 :
名称未設定 :2014/03/10(月) 23:06:49.95 ID:gXfvWf//0
Googleスプレッドシートからフォームを作れて、フォームでの回答がスプレッドシートにまとめられますよね。 そんな感じで、アプリから 何かしらのデータを 指定のGoogleスプレッドシートに送信、みたいな事はできますか。 もしよければ方法も教えて下さい。
496 :
名称未設定 :2014/03/11(火) 02:44:24.11 ID:UPHw5ZSm0
カスタムクラスのオブジェクトを、その元のクラスのオブジェクトとして代入したりすると、 カスタムクラスのもつ独自のプロパティは失われますか?
497 :
名称未設定 :2014/03/11(火) 02:56:18.36 ID:q30PSQXn0
失われない。ただのキャストだから。 だがカスタムクラスにキャストして戻さないとそのプロパティにはアクセスできないよ。
498 :
名称未設定 :2014/03/11(火) 09:47:57.90 ID:sRBvZ39l0
499 :
名称未設定 :2014/03/11(火) 10:15:53.83 ID:q30PSQXn0
>>498 General->Deployment Info で Device Orientationを設定してるか?
500 :
名称未設定 :2014/03/11(火) 10:32:51.66 ID:sRBvZ39l0
>>499 してます
あとshouldAutorotateみたいなやつも全てNOを返しているんですがuiimageviewにuiimageを動的にセットすると勝手に回転します…
501 :
名称未設定 :2014/03/11(火) 10:54:58.10 ID:q30PSQXn0
>>500 回転させないならshouldAutoRotateはいらないから消せばいい。
502 :
名称未設定 :2014/03/11(火) 14:09:49.83 ID:yPoeeuJ80
作る前のアイデア出しの際に紙に画面をラフデザインしたいんですが、 スクリーンの大きさ、できればiphone外形も等身大で印刷できる テンプレートpdfとかありませんでしょうか
503 :
名称未設定 :2014/03/11(火) 14:22:22.76 ID:VkdCBdEJ0
>>502 iPhone実機写真をサイズに合わせて縮小(拡大)して、スクリーンの部分をくり抜けばええやん
手書きなんだから単に気分の問題でしかないんだろうから
504 :
名称未設定 :2014/03/11(火) 18:53:40.37 ID:2UWRR/fz0
作ったアプリApp審査に出そうと思っているのですがXcodeでのアイコンの設定の仕方って Images.xcassetsをクリックして、それっぽいアイコンの形の点線の所にそれに適したサイズの画像を ドラッグすればいいんですよね?
505 :
名称未設定 :2014/03/11(火) 19:01:47.00 ID:2UWRR/fz0
忘れてましたXcode5です
506 :
名称未設定 :2014/03/11(火) 20:32:15.81 ID:bnjOBCda0
>>504 それで合ってます
画像サイズをお間違いの無いように・・・
質問です
SpriteKitを使っているのですが、
SKActionでSEを鳴らしている最中にタイマーなどの割り込みが入ると、
それ以降音が止まってしまいます。
割り込みが来た後、音を再開させるにはどうしたらいいでしょうか?
よろしくお願いします。
507 :
名称未設定 :2014/03/11(火) 23:34:27.84 ID:SHL+mWl50
すこし風変わりな質問かもしれませんがお聞きします。 自分は大学で非情報系の学問を専攻しており、まわりにソフトウェア開発をしている友達がいません。(元々友達も少ないのですが) 独学でぼっちの状態でObjective-Cを勉強してきました。 アプリ開発もすこし落ち着いてきたところで、自分と同じような境遇の人と話したいなと思ってます。 iPhoneアプリ開発等に関して議論する場は2ちゃんねるしか知らないので、それ以外で知識を共有できるようなコミュニティってありますか?
508 :
名称未設定 :2014/03/12(水) 00:25:10.52 ID:a/3dgfju0
>>502 方眼用紙にディスプレイのワクだけボールペンで書いて、中身はえんぴつでデザインしてる。
世の中みんなこういうふうにやってるものと思ってたわ。
509 :
名称未設定 :2014/03/12(水) 00:40:41.14 ID:YjUBVkrH0
ステンレスのiPhone用デザインテンプレートツールを買おうかと思ったが あれ、よく読むと原寸よりけっこう大きかったので買うのやめた経緯が
510 :
名称未設定 :2014/03/12(水) 01:43:05.72 ID:hHmxfAMI0
とりあえず開発者名をニックネーム許可しろよーん
511 :
名称未設定 :2014/03/12(水) 01:51:38.06 ID:HCYDrpQo0
>>506 BGMみたいな長い音なんじゃないの?
AVAudioPlayerとか使えば割り込み復帰も自動になるんじゃないかな。
SpriteKit使ってないからわからんけど。
512 :
名称未設定 :2014/03/12(水) 02:05:13.16 ID:tg88wWfo0
バックグラウンドでローカル通知のdidReceiveLocalNotificationを動かしているのですが、 このデリゲートの動作に10秒以上かかるとして、 この間にアプリがユーザーに立ち上げられたかどうかを取得しようとしています。 しかしapplicationStateは立ち上げた後もbackgroundを示し、変化を認識してくれません。 立ち上げたあとは全ての動きがこのデリゲートの後回しになり、終わるまで動きません。 どうにかデリゲート中に割り込むいい方法はないでしょうか?
513 :
名称未設定 :2014/03/12(水) 02:24:50.59 ID:HCYDrpQo0
立ち上げた時にキャンセルすればいいんじゃね? cancelLocalNotification:
514 :
名称未設定 :2014/03/12(水) 02:33:52.28 ID:tg88wWfo0
>>513 回答ありがとうございます。
cancelLocalNotification:は予約したものをキャンセルするもので、
すでに実行中のものは違うと思います。
問題は、そのようなキャンセルをするかどうかのきっかけがうまく取得できないことなんです。
515 :
名称未設定 :2014/03/12(水) 04:00:08.87 ID:HCYDrpQo0
>>514 それLocalNotificationの問題じゃないんじゃね?
ようは10秒かかる動作を途中でキャンセルしたいってことだろ?
それなら自分でキャンセルできるじゃん。
立ち上げた時にキャンセルしたいなら applicationWillEnterForeground: でいい。
516 :
名称未設定 :2014/03/12(水) 04:49:11.78 ID:Cggk25Pp0
>>512 バックグラウンドでローカル通知のdidReceiveLocalNotificationを動かしているのがメインスレッドだと、終わるまでバックグラウンドだろう
それが終わってからフォアグラウンドになりましたあ通知(デリゲート)とかフォラグラウンドにするための処理にしかならないやん
デリゲート中に割り込むのにデリゲートの処理(10秒とかかかるやつ)は別スレッドにさせるたらどうかと思うが、システム的に許しているのかは知らない
517 :
名称未設定 :2014/03/12(水) 06:14:24.28 ID:fxpbTEBv0
すみませんアプリ開発者様に聞きたいのですがiPhoneの画面を録画するアプリを作るのはやはり困難なのでしょうか?
518 :
512 :2014/03/12(水) 07:54:11.22 ID:tg88wWfo0
>>515 >>516 回答ありがとうございます。
自己解決しました。
didReceiveLocalNotificationの中で
beginBackgroundTaskWithExpirationHandlerを使えばその他の操作も受け付けてくれました。
519 :
名称未設定 :2014/03/12(水) 08:05:37.33 ID:tg88wWfo0
>>517 ライブラリもあるけど、自作だったらAVFoundationでできるはず。
自分には難しそうだった。初心者向けではないと思う。
520 :
名称未設定 :2014/03/12(水) 08:58:47.22 ID:upvqgisC0
>>517 目的によるけど、iOSでは(脱獄しない限り)他のアプリのスクリーンショット(当然、録画も)は撮れないよ。
521 :
名称未設定 :2014/03/12(水) 10:39:22.88 ID:hQrc94Va0
>>506 ありがとうございます。
無事提出出来ました
522 :
名称未設定 :2014/03/12(水) 12:14:12.15 ID:2W65ljz80
>>511 レスありがとうございます
BGMじゃなくて短い効果音です
523 :
名称未設定 :2014/03/12(水) 12:46:40.20 ID:HCYDrpQo0
524 :
名称未設定 :2014/03/12(水) 13:07:34.56 ID:3h7u9uF30
>>507 回答がないってことはないんだろうな・・・
スカイプちゃんねるとかで募集してみれば?
525 :
名称未設定 :2014/03/12(水) 14:07:47.89 ID:qraSSfEt0
[%c(classname) method] みたいな書式を見たのですがこの構文の意味を教えてください。
526 :
名称未設定 :2014/03/12(水) 14:09:42.74 ID:2W65ljz80
>>523 そうなんですね。
やっと分かりました。
ありがとうございます!!
527 :
名称未設定 :2014/03/12(水) 14:12:10.75 ID:2W65ljz80
>>507 2ちゃんよりオープンになるかもしれないが、
Twitterなら似たような人たちと話が出来るよ。
528 :
名称未設定 :2014/03/12(水) 15:26:07.97 ID:yh/Czj6w0
強制的に画面をスリープさせられるor自動スリープを数秒に設定できる x-codeでの作り方ありますか? 画面をスリープさせたいんです・・ コード分かる人いたらよろしくお願いします。
529 :
名称未設定 :2014/03/12(水) 15:33:52.61 ID:MvSIymlQ0
>>528 Sleepに入るのを止めたい、Sleepに入るのを知りたいというのはアプリに有用だが、システム環境設定にありシステムでやっているそれをアプリでやる意味が無い
ので、無いよ、たぶん
530 :
名称未設定 :2014/03/12(水) 15:41:39.16 ID:yh/Czj6w0
>>529 強制的にスリープにすることは今のところ不可能ってことですか。。。
531 :
名称未設定 :2014/03/12(水) 15:42:40.73 ID:2W65ljz80
532 :
名称未設定 :2014/03/12(水) 15:48:22.23 ID:MvSIymlQ0
>>530 iPhoneの右上にあるボタンを押してもらえば/押せばええやん
そんなに必要なら絵で矢印で右上指してとかw。ああiPadだと遠いとか?
533 :
名称未設定 :2014/03/12(水) 23:43:47.64 ID:/12BYTBo0
スリープさせる必要のあるアプリとは何だろう。 さっぱり思いつかない。
534 :
名称未設定 :2014/03/13(木) 00:18:01.05 ID:Jo53QgB3i
画面を真っ黒にして、タップされたら戻る
535 :
名称未設定 :2014/03/13(木) 10:10:31.85 ID:MQXgIcMl0
ユーザーから見てアプリの画面なのかスリープ中なのか区別付かなくなるのはちょっと・・・
536 :
名称未設定 :2014/03/13(木) 11:29:04.23 ID:wGbttvyY0
Xcodeの戻るショートカットキーってありますか? エクセルだとコントロール+Z みたいな。 自分で設定するのでしょうか? 調べてもイマイチでてこないんですよね・・・
537 :
名称未設定 :2014/03/13(木) 11:38:02.82 ID:iTmce/sZ0
option+z(のはず
538 :
名称未設定 :2014/03/13(木) 11:46:07.29 ID:wGbttvyY0
できませんでした・・・
539 :
名称未設定 :2014/03/13(木) 11:50:42.38 ID:MQXgIcMl0
Undoならコマンド(四つ葉のマーク、WindowsキーボードならWindowsマーク) + Z で
540 :
名称未設定 :2014/03/13(木) 11:54:15.36 ID:MQXgIcMl0
ってエクセル知らんから違うか・・・
541 :
名称未設定 :2014/03/13(木) 12:02:33.02 ID:7cuQxxCj0
Mac版のExcelはctrl+Zはundoだな。 Xcodeのundoはコマンド+Z
542 :
名称未設定 :2014/03/13(木) 12:05:28.28 ID:7cuQxxCj0
>>525 theos frameworkの記法らしい。
調べてみれば?
543 :
名称未設定 :2014/03/13(木) 14:12:05.39 ID:pPf2YPl90
544 :
名称未設定 :2014/03/13(木) 18:26:20.91 ID:21muYoer0
どうしてもわからないので教えてください。 NSUserDefaultsにUIViewで作成したviewを保存したいのですが、 NSUserDefaultsにはUIViewは保存できないのでNSArrayの中にviewを入れて渡そうとしています。 UIView *theView=[[UIView alloc]initWithFrame:CGrectFrame(0,0,100,100)]; NSArray* theArray=@[theView]; NSUserDefaults* ud=[NSUserDefaults standardUserDefaults]; [ud setObject:theArray forKey:@"kari"]; このようにした上でビルドして、シュミレーターで試すと特にエラー表示等はでませんが、 アプリがクラッシュしてホーム画面になってしまいます。 うまくNSUserDefaultsに保存するにはどうすりゃいいのでしょうか? もしくは、viewを保存するうまい方法は何かありませんか?
545 :
名称未設定 :2014/03/13(木) 18:39:35.79 ID:JAKM+vVz0
>>544 Class Reference 見れば書いてあるけど NSUserDefaults は property list object か
property list object の入ったコンテナしか保存できない
View を保存したけりゃシリアライズの方法を自分で決めて NSData にして保存すればいい
シリアライズは NSCoding プロトコルを実装すればいい
546 :
名称未設定 :2014/03/13(木) 18:44:48.24 ID:JAKM+vVz0
おっと UIView は NSCoding プロトコルに準拠してたな
547 :
名称未設定 :2014/03/13(木) 18:52:05.59 ID:i6wGrjl20
548 :
名称未設定 :2014/03/13(木) 19:22:47.42 ID:iTmce/sZ0
あれ、command+zか 嘘情報流してすまんかった
549 :
名称未設定 :2014/03/13(木) 19:47:38.52 ID:7cuQxxCj0
>>544 theViewをNSDataにして保存、復元はNSKeyedUnarchiverかな。
id data = [NSKeyedArchiver archivedDataWithRootObject:theView];
[[NSUserDefaults standardUserDefaults] setObject:data forKey:@"theView"];
550 :
名称未設定 :2014/03/13(木) 20:02:18.14 ID:5kitm/Qv0
>>544 そもそもuserDefaultsにUIView自体を保存するべきじゃない。
画像なら画像はドキュメントに保存してそのパスだけ保存しておけばいいし、
各種設定からなるUIViewなら設定を保存しておけばいい。
UIView自体を保存しなければいけないってのはかなり特殊な事例になる。
551 :
名称未設定 :2014/03/13(木) 20:06:05.21 ID:7cuQxxCj0
ま、そうだわなw 普通はdocuments使う。
552 :
名称未設定 :2014/03/13(木) 21:01:52.14 ID:YuZ3jTEq0
アプリの初回起動時に、位置情報サービスの有効化についてのダイアログが出ると思いますが、 ここでキャンセルされた場合についての質問です。 キャンセルされてしまった場合、次回起動時にはダイアログが出ないですが、 どうしても位置情報を使って表示したいビューがあるので、毎回起動時に確認したいです。 [CLLocationManager locationServicesEnabled] で位置情報サービスが有効かどうかは 確認できるのですが、下記が分からないでいます。 ・設定画面の呼び出し方法 ・初回はデフォルトの確認画面が出るので無視する方法
553 :
名称未設定 :2014/03/13(木) 21:13:40.19 ID:av654Pkl0
>>552 無理。ユーザーのプライバシーを守るためにそうなってるんで、それが嫌ならiOSアプリ作るのやめなよ。
554 :
名称未設定 :2014/03/13(木) 21:29:20.62 ID:YuZ3jTEq0
>>522 無理矢理位置情報サービスをオンにするわけじゃなくて、ダイアログを出して
ユーザーの意思で設定画面を出すのはアリだと思うんですよ。
555 :
名称未設定 :2014/03/13(木) 21:49:48.15 ID:H/Kfyp2c0
iPhoneの画像フォルダを開いて、ユーザに選択された画像を保存する。という処理において 画像サイズが大きいと強制終了します・・・解決法はありませんか? 例としては、パノラマ画像とかです。 というか普通の写メでも保存するのに数秒かかったりして画像が一時停止するのもちょっと困ってます
556 :
名称未設定 :2014/03/13(木) 22:00:32.31 ID:94ViCSyE0
ユーザーの意思でオフにしてるのに起動のたびにダイアログ出てくるとか☆一つですレベル
557 :
名称未設定 :2014/03/13(木) 22:14:47.58 ID:av654Pkl0
558 :
名称未設定 :2014/03/13(木) 22:20:10.20 ID:av654Pkl0
>>554 ダイアログが出るのは「初回起動時」ではなく、「最初に位置情報を要求した時」だから、
その前に位置情報がどうして必要で、どう使うつもりなのかをちゃんと説明すればいい。
559 :
名称未設定 :2014/03/13(木) 22:45:00.10 ID:bHWnSrMQ0
>>554 アプリ起動時に
kCLAuthorizationStatusNotDetermined
だったら、そのまま何もしない。システムのAlertにまかせる
kCLAuthorizationStatusDenied
だっらた、「こういう機能で必要なので、ローケーション使えるようにした方がいいっすよ」というAlertを独自に出す。といっても毎回じゃ
>>556 のようになるだろから、3回までとか
560 :
名称未設定 :2014/03/13(木) 22:46:37.56 ID:21muYoer0
>>545 ,547,549,550
たくさんのレスありがとうございます。
まだまだ初心者なので、わからないことだらけですが一つ一つ調べて試してみます。
ご教授していただきありがとうございました。
561 :
名称未設定 :2014/03/14(金) 00:18:37.98 ID:FiNaD0c60
Xcodeで開発しようと思ってて、今はまだ環境構築中なんだけど BuildSettingsのOtherLinkerFlagsにフラグが設定できなくて困ってる @OtherLinkerFlagsの項目右側をダブルクリックして、ウィンドウ表示させる Aウィンドウ左下の+を押して項目追加 Bフラグを記述、Enterキー押す これで手順あってる?Enterキー押しても全然追加されないわ OSはOSX10.9.1で、Xcodeは5.0.2
562 :
名称未設定 :2014/03/14(金) 00:41:29.11 ID:fNSz8uVu0
たびたびすいません。544です。 教えていただいた方法をとりあえず一つ一つ他名sていこうと思い自分で調べてやってみました。 例えばタップしたビューの情報をNSUserDefaultsにNSDataにした上で保存して、 それを、改めてdataからUIViewに戻して、その保存したview、つまりタップしたviewのbackgroundColorを変更したいのですが 下記のコードではうまくいきません。エラーはでてないのですが... UIView *tapView=sender.view; id data = [NSKeyedArchiver archivedDataWithRootObject:tapView]; NSUserDefaults *ud= [NSUserDefaults standardUserDefaults]; [ud setObject:data forKey:@"tapView"]; id reverse = [ud objectForKey:@"tapView"]; UIView *reverse2 = [NSKeyedUnarchiver unarchiveObjectWithData:reverse]; reverse2.backgroundColor=[UIColor blackColor]; つまり、タップしたビューを保存してそれを改めて取り出した上で、タップしたビュー自身のプロパティを変更したいのですが... 意図が伝わりにくい文章で申し訳ないです。また何度も図々しく質問してごめんなさい。 教えていただけたら幸いです。
563 :
名称未設定 :2014/03/14(金) 00:55:01.13 ID:9CtK2kfs0
アーカイブする前のビュー(A)とアーカイブから復元したビュー(B)は別のオブジェクトだぞ。 AをremoveFromSuperviewしてBをaddSubview.
564 :
561 :2014/03/14(金) 01:13:51.60 ID:FiNaD0c60
>>561 だけど、なんか解決した気がするから、一応あってるか教えてくれ
▼Other Linker Flags
Debug
Any Architecture | Any SDK
Release
Any Architecture | Any SDK
俺Other Linker〜のとこに追加しようとしてたんだけど、
DebugとReleaseのAny〜ってとこに追加してったらよかったんだな
565 :
名称未設定 :2014/03/14(金) 03:53:15.23 ID:RkLta0cJ0
プログラミング初心者です。 ObjectiveCとSpriteKitの本を読んだのですが、 いざ作るとなるとわからない事がどんどん出てきてどうすればいいかどうか わからない状態です。どういう順で学んでいけばいいのでしょうか 読んだ本はこの2冊です。 Sprite Kit iPhone 2Dゲームプログラミング Xcode 4ではじめるObjective-Cプログラミング
566 :
名称未設定 :2014/03/14(金) 06:17:35.32 ID:sudRxZBD0
分からない事にぶつかる度にその問題について具体的に質問すれば良いよ
567 :
名称未設定 :2014/03/14(金) 07:14:00.54 ID:yDDa0lwh0
>>562 だからviewを保存しちゃ駄目だってば。
>>566 それだと
>>562 みたいに根本的に方向性が間違ってる場合にはどうしようもない。
回り道のようでも、ちゃんとしたプログラミングの基礎からしっかり勉強するのが、
結局は一番の近道だと思うけどなぁ。
568 :
名称未設定 :2014/03/14(金) 07:55:13.76 ID:9CtK2kfs0
>>567 あのさ、その「ビューを保存しちゃだめ」ってのはどこのルール?
なんのためにUIViewはNSCodingを採用してるの?
569 :
名称未設定 :2014/03/14(金) 08:06:14.42 ID:yDDa0lwh0
>>568 別にルールじゃないけど、
>>562 のやりたいことを実現するための適切な方法じゃないってこと。
570 :
名称未設定 :2014/03/14(金) 08:13:30.53 ID:9CtK2kfs0
>>569 それなら了解。
とりあえず562は具体的に何をやろうとしてるのか書いた方がいい。
571 :
名称未設定 :2014/03/14(金) 09:00:41.65 ID:/tM15zCG0
>>565 spritekitは画像表示やら動きを便利にするものだからね。
勉強するのは後回しさ。
まずはviewとviewcontrollerあたりをマスターしろ。
572 :
名称未設定 :2014/03/14(金) 09:57:18.21 ID:1+PvpMxJ0
>>565 "標準的な画像は8bit256階調でRGB3色を表しており各ピクセルの色は32bitで表される
そして本来24bitで済む余った8bitの部分をそのピクセルの透明度として定義したのがアルファチャンネルである"
とか敵のアルゴリズムが当たり判定がとかそういうところなら自分が作りたいジャンルの
"○○ゲームを作る"系のゲームプログラミングの入門書を読む(他言語でもよい)
数冊眺めれば他言語でも共通の言語外の部分を説明しているから。
573 :
名称未設定 :2014/03/14(金) 12:43:23.14 ID:fNSz8uVu0
>>563 ありがとうございます。消去して新たに追加するということですね。
>>567 viewを保存しない方が良いことはご指摘にありましたので理解したつもりです。
おっしゃるとおり、まだ初心者で現在は基礎すらできていないです。ですので教えていただいたことを一つずつ作って試すために、あえてNSUserDefaultsに保存してみようと思いました。
>>570 一度目にタップしたviewと二度目にタップviewのカラー(background)が同じならその二つのviewが消える(clearColorにする)
ということを自分で定義したカスタムクラス内で行いたいのですが、自分なりに簡単にコードを下記にまとめました。
◎viewController.m
- (void)viewDidLoad{
[super viewDidLoad];
myCustomClass* view_one=[[myCustomClass alloc] initWithFrame:CGRectMake(0, 0, 100, 100)];
[self.view addSubview:view_one];
myCustomClass *view_two=[[myCustomClass alloc] initWithFrame:CGRectMake(0, 0, 100, 100)];
view_two.frame=CGRectMake(100, 0,100,100);
[self.view addSubview:view_two]; }
◎myCustomClass.m
- (id)initWithFrame:(CGRect)frame{
self = [super initWithFrame:frame];
if (self) {
self.backgroundColor=[UIColor redColor];
UIGestureRecognizer *tapGesture=[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(viewTap:)];
[self addGestureRecognizer:tapGesture]; }
return self;}
-(void)viewTap:(UITapGestureRecognizer *)sender{ }
574 :
名称未設定 :2014/03/14(金) 12:44:38.32 ID:fNSz8uVu0
>>573 の続きです。
このようにして作成したviewをタップしたときに呼び出すようにしてあるviewTap内の定義で悩んでいます。
このviewTap内で、一回目のタップしたviewと2回目にタップしたviewを比べたいのです。
一回目にタップしたviewそのものを保存するためにいろいろ自分なりにやってみたのですが、基礎的な知識が足りないこともあり、うまくいきません。
これをviewController内で行うにはNSMutableArrayに一回目にタップしたviewを入れて、sender.viewと比べることでうまくいきました。
どのように定義するのが良いでしょうか?
575 :
名称未設定 :2014/03/14(金) 13:26:12.12 ID:9CtK2kfs0
>>573-574 こんなところかなあ。
(1)二つのView(A, B)の比較はViewControllerでやるのが設計的に適切ではないか。
(2)NSUserDefault(preferenceディレクトリ)は、基本的にplistを保存する場所なので、
NSFileManagerでdocument等に保存したほうが良いだろう。(つかなんで保存してるの?)
(3)比較するのがUIColorならUIColorを保存するだけで良い。
(4)UIColorの比較は -getRed:green:blue:alpha: で取得したRGBA値を比較してるのか。
576 :
名称未設定 :2014/03/14(金) 15:13:07.88 ID:sudRxZBD0
>>567 >>562 は方向性が間違ってるという指摘を受けられそれによって適切に修正できるんだから
全然どうしようもなくないじゃん、言葉の使い方が間違ってるよ
基礎をしっかり学ぶのは大切だがプログラミング自体素人がイキナリそれをやるのは
イメージも追いつかず拷問だから大体分かってきてからで良い
質問なんて大したコストかからないんだからちょっとぶつかったらさっさと聞けばいい
577 :
名称未設定 :2014/03/14(金) 15:56:15.14 ID:h9Z4yIGV0
>>573 カスタムクラスに判定させると他にタップしたviewを管理するクラスが必要になるから判定はひとまずviewControllerにまかせたらどうかな。
テキトーで悪いけどviewControllerに-(UIView*)touchedViewとか定義しておいてviewController内で
-(void)viewTap:(UITapGestureRecognizer *)sender{
if(touchedView = nil){
touchedView = (UIView*)sender;
return;
}
UIView *senderView = (UIVeiw*)sender;
UIColor *aColor = touchedView.backgroundColor;
UIColor *bColor = senderVier.backgroundColor
if (2つのUIColorが同じ){
touchedView.backgroundColor = [UIColor clearColor];
senderView.backgroundColor = [UIColor clearColor];
}
touchedView = nil;
}
578 :
名称未設定 :2014/03/14(金) 16:42:14.69 ID:ygIPchA70
質問です。 _sound = [SKAction playSoundFileNamed:@”sound01.mp3" waitForCompletion:NO]; でサウンドを追加、音もなりますが、 iOS純正アプリのタイマーの割り込みが入った直後、 音が鳴らなくなります。 割り込み終了後に音を鳴らすようにするにはどうすればいいのでしょうか? ご教示どうかよろしくお願いします。
579 :
名称未設定 :2014/03/14(金) 16:44:02.52 ID:9CtK2kfs0
>>573 いろんなやり方があるが、俺はtarget/actionパターンを教えとく。
UIColorの比較はisEqual: でいい。他にもview.tagとカラーを関連づけて、tagの値だけで判定する方法もある。
@interface MyCustomClass : UIView
@property (nonatomic, weak) ViewController *target;
@property (nonatomic) SEL action;
@implementation MyCustomClass
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
if ([_target respondsToSelector:_action]) {
[_target performSelector:_action withObject:self afterDelay:0.0];
}
}
@implementation ViewController {
MyCustomClass *__weak prevTappedView;
}
- (void)viewDidLoad {
[super viewDidLoad];
MyCustomClass *a = [[MyCustomClass alloc] initWithFrame:CGRectMake(0, 0, 100, 100)];
a.backgroundColor = [UIColor redColor];
a.target = self;
a.action = @selector(viewDidTapped:);
[self.view addSubview:a];
//他のビューも同様。 viewDidTapped: を実装すること
}
580 :
名称未設定 :2014/03/14(金) 16:46:10.95 ID:9CtK2kfs0
581 :
名称未設定 :2014/03/14(金) 16:54:20.32 ID:ygIPchA70
582 :
名称未設定 :2014/03/14(金) 17:38:15.58 ID:ygIPchA70
連投失礼
「あ、そうだ、iOS純正サンプルコードの”Adventure”ならサウンドもちゃんとなっているだろう」
と思い、調べてみたところ、
タイマーの後で普通に音が鳴らなくなりました。
>>523 のサイトには”SpriteKit自体のバグ”ということも書いてあり、絶望しました。
>>523 の方法でちゃんとバグ修正できますでしょうか?
583 :
名称未設定 :2014/03/14(金) 17:46:18.93 ID:95F6gQfw0
質問です。 MacPro 2010 midの映像をiMac 2010 midの画面へ ターゲットディスプレイモードで表示したいと思います。 接続ポートは両者ともmini displeyportなので単にケーブルを買えば 良いのかと思いますが、長め(2m以上)の物が見つかりません。 サード製の1.5m+延長ケーブルを買う金額を考えると 純正thunderbolt(2m)が買えそうなんですが、 上記の用途にthunderboltケーブルを使っても互換性は問題ないのでしょうか?
584 :
名称未設定 :2014/03/14(金) 18:48:49.10 ID:9CtK2kfs0
>>582 今簡単にテストしたが、なんかだめだなw
タイマーの後でsetActive:YES しても音が出ない。
AVAudioPlayer使おう。こっちは大丈夫。
runAction: するかわりにplayer.currentTime=0にして、[player play]; すればいいんじゃね?
585 :
名称未設定 :2014/03/14(金) 19:17:41.99 ID:ygIPchA70
>>584 レスありがとうございます!
わざわざテストしていただき本当に感謝です!
今試しています!
あとで結果報告いたします。
586 :
583 :2014/03/14(金) 19:24:53.69 ID:95F6gQfw0
ああ、すいません質問スレッドを間違えたのに今気がつきました・・・
587 :
名称未設定 :2014/03/14(金) 20:01:41.25 ID:ygIPchA70
結果報告です。
若干、連打時にほんの少しだけカクつくようになりましたが、
無事
>>584 さんの方法でタイマー割り込み後も動きました!
>>584 さん、回答してくださった方々、本当にありがとうございました。
588 :
名称未設定 :2014/03/14(金) 21:02:21.62 ID:TcNVRqcK0
2chまとめアプリ作りたくてTBXMLのライブラリを使ったRSSの解析を試みています。 itemとかtitleなんかの文字列を入力するとそれに合わせてタグを参照できるメソッドがあるのですが <item>・・・</item>でなく<item ・・・></item>のような別の文字列まで混じっているxmlは解析できません。 TBXML.m + (TBXMLElement*) childElementNamed:(NSString*)aName parentElement:(TBXMLElement*)aParentXMLElement{ //aNameが子タグの文字列、aParentが親タグ? TBXMLElement * xmlElement = aParentXMLElement->firstChild; const char * name = [aName cStringUsingEncoding:NSUTF8StringEncoding]; while (xmlElement) { if (strlen(xmlElement->name) == strlen(name) && memcmp(xmlElement->name,name,strlen(name)) == 0) { return xmlElement; } xmlElement = xmlElement->nextSibling; } return nil; } 上記のメソッドのif文をitemなどの文字列が含まれているかという風にすればうまくいくと思うのですが どうすればいいでしょうか?
589 :
名称未設定 :2014/03/14(金) 21:39:08.47 ID:VDilRHcN0
2chまとめアプリは高確率でリジェクトされる。 あの手この手でくぐり抜けようという人いるが、 前スレで凹んだ人いたし、もう通さないんじゃないかな。
590 :
名称未設定 :2014/03/14(金) 22:09:11.02 ID:h9Z4yIGV0
UIColorの比較にisEqual:使えるのか、知らなかった。 NSObject定義だからかなり幅広く使えるみたいだね。 ところでNSStringでも使えるみたいだけど、isEqualToString:との違いはなに? 今までずっとisEqualToString:使ってた。
591 :
名称未設定 :2014/03/14(金) 22:38:35.50 ID:d/OxLwvq0
最初から文字列だって分かってる場合はisEqualToStringの方が早い Special Considerations When you know both objects are strings, this method is a faster way to check equality than isEqual:.
592 :
名称未設定 :2014/03/14(金) 22:45:19.52 ID:3uZb8cmU0
ニュースアプリとか、まとめアプリとか、 広告収入的には最強だとは思うんだけどライバルが多すぎるね。 と言うか、ゲームアプリ並みに大企業が多い。 だからと言って違いをつけようとしても、あまり違いが作れない。
593 :
名称未設定 :2014/03/14(金) 23:04:10.03 ID:h9Z4yIGV0
594 :
名称未設定 :2014/03/14(金) 23:12:29.21 ID:OxD7Iim50
>>592 他人のコンテンツで儲けるなんて誰でも考え付くからな
595 :
名称未設定 :2014/03/14(金) 23:59:07.32 ID:fNSz8uVu0
>>575 何度も答えていただき本当に、ありがとうございます。
カスタムクラス内で一回目にタップしたviewと二回目にタップしたviewを比べたかったので、一回目にタップしたviewをとりあえず保存して、
その保存したviewと二回目タップのsender.viewで比べられないかと考えたから保存するということを考えたのですが、viewControllerのインスタンス変数等に入れて、
やったほうがよいのですね。
>>577 丁寧に答えていただきありがとうございます。
やはり、カスタムクラス内で行うのは難しいみたいですね。最初にカスタムクラスにviewControllerのdidLoad内で要素を入れた配列等をカスタムクラスで使用してみると
定義した要素が確認できなかったので使用できないのかなとは思ったのですが、そのようにするには他に管理するクラスが別に必要ということですかね。
>>579 わざわざ別のやり方を丁寧に教えていただきありがとうございます。
まだまだ勉強不足なので理解できない部分もありますが、一つずつ調べて参考にさせていただきます。
こんな素人同然な私の質問に丁寧に答えていただき、本当にありがとうございます。
596 :
名称未設定 :2014/03/15(土) 00:59:11.86 ID:43W79W8p0
iOS 7.1で、 ・Navigation Controllerの遷移時にNavigation Bar右端が灰色になる ・Table Viewで行をreloadしたときにセルの高さが変わると下部のToolbarの背景の透過率が100%になって表示がおかしくなる んですけどどう対処したらいいんでしょうか
597 :
名称未設定 :2014/03/15(土) 03:42:06.76 ID:ShDQbuip0
アプリ内にコンテンツは入っていて、フラグによって課金・無課金をふるい分けるときは、 NSUserDefaultはやめといたほうがいいのでしょうか? それでなのか原因はわかりませんがクラックされてタダで自分のアプリを使われてるという知り合いがいたもので気になります。 何を使うのがベストか教えてください。
598 :
名称未設定 :2014/03/15(土) 04:11:33.27 ID:0wrUl+Ub0
クラックするやつなんか少数なんだから、無視するのがベスト。 アプリ売る事に力を注いだ方がいい。
599 :
名称未設定 :2014/03/15(土) 04:34:30.84 ID:Iv4LqT1u0
>>593 オブジェクトの一致を比較するのがisEqualの役割
なので、NSMutableStringを使ってる場合に、isEqualだと想定外の動作になる場合があるよ、と補足
600 :
名称未設定 :2014/03/15(土) 06:57:35.06 ID:XEURjENL0
601 :
名称未設定 :2014/03/15(土) 08:42:06.19 ID:DqEC6lXI0
それとは違うけど、NSStringの比較をisEqualToString:でやると、 濁点半濁点付きのひらがなカタカナがイコールと判定されないんで、 その場合はcompare: 使った方がいいかも。
602 :
名称未設定 :2014/03/15(土) 12:16:24.82 ID:ZrU9gGl00
iOS7.1からNSTimerの挙動変わった?タイマー発動したままリリースすると制御不能になって止まらなくなるわ。
603 :
名称未設定 :2014/03/15(土) 12:32:17.74 ID:DqEC6lXI0
runloopにaddしたままreleaseってこと? そりゃまずいっしょ。
604 :
名称未設定 :2014/03/15(土) 13:03:16.31 ID:IkpHgDqV0
Xcode5.1にしたらエラーが沢山出たのでarm64を外したんですが、そもそも64bitとか32bitとかよくわからないんですが、どこに影響してくるんでしょうか?
605 :
名称未設定 :2014/03/15(土) 13:08:33.44 ID:VDmmF14Q0
NSIntegerとか
606 :
名称未設定 :2014/03/15(土) 16:05:20.16 ID:Iv4LqT1u0
>>600 あれ、すまん
>>599 は大ウソぶっこいてた。
ので、
>>599 は忘れて下さい。
検証コード作って試したら、なんら問題なかった( ;´Д`)俺のアホー
607 :
名称未設定 :2014/03/15(土) 17:51:23.03 ID:ZEUqB0AP0
質問ですがblock内でデリゲートを使用するときはこれで循環参照は起こらないのでしょうか? hoge.clickedButton = [^(int index) { if (index == 1) { if ([weakDelegate respondsToSelector:@selector(deleteMethod)]) { [weakDelegate deleteMethod]; } } } copy];
608 :
名称未設定 :2014/03/15(土) 18:38:50.69 ID:VDmmF14Q0
>>607 ならないようにweakにしてんじゃね
delegateがインスタンス変数なら、インスタンス変数直接だと循環参照になるだろうが、
ブロック前でAuto変数にコピってそれをブロックで使えば循環参照にならないだろうから、別にweakでなくてもいいんだろうけどな
609 :
名称未設定 :2014/03/15(土) 18:57:13.40 ID:VDmmF14Q0
てか、hoge(.clickedButton)の死とそのselfの死に依存関係がなきゃなんにも関係無いんじゃねと思うが、それだけのコードじゃなんとも言えないな
610 :
名称未設定 :2014/03/15(土) 19:05:40.98 ID:ZEUqB0AP0
>>608 返信ありがとうございます。
すみません、weakDelegateの宣言が抜けてましたね
__weak id weakDelegate = delegate;
こうです。
ちなみに.hでは
@property (nonatmic, weak) id <hogeDelegate> delegate;
として.mでは
@synthesize delegateとしています
(nonatmic, weak)となっているからわざわざ
__weak id weakDelegate = delegate;
と書く必要ないということでしょうか?
611 :
名称未設定 :2014/03/15(土) 19:25:28.30 ID:DqEC6lXI0
weak属性の変数ならいらないでしょう。 それより、blockをcopyして渡す必要があるのかな。 clickedButtonがhogeのプロパティならcopy属性付いてると思うけど。
612 :
名称未設定 :2014/03/15(土) 19:37:27.74 ID:ZEUqB0AP0
>>611 返答になっているか怪しいですが
このclickedButtonは違うクラスのプロパティです
typedef void(^clickedButtonAtIndex)(int);
@interface MyAlertView : UIAlertView <UIAlertViewDelegate>
@property (copy) clickedButtonAtIndex clickedButton;
@end
UIAlertViewのデリゲート書くの面倒くさくてボタンのタップイベントをblockで
渡しています
つまり違うクラスです
返答になっていなければごめんなさい
613 :
名称未設定 :2014/03/15(土) 19:44:05.88 ID:DqEC6lXI0
>>612 うん、copy付いてるね。そうじゃ無いと警告出るから。
なので hoge.clickedButton = ^(int index) { }; でいいと思うよ。
614 :
名称未設定 :2014/03/15(土) 19:47:36.00 ID:ZEUqB0AP0
>>613 わかりました、ありがとうございました。
615 :
名称未設定 :2014/03/15(土) 19:56:33.97 ID:VDmmF14Q0
>>610 ブロック内でインスタンス変数を使うと、selfがブロックによってキャプチャ&retainされる
__weak id weakDelegate = delegate;
ってして、ブロック内でそれを使うと、その時点でのAuto変数(weakDelegate)がキャプチャされて、ブロック内で使われる。属性はAuto変数の属性により元の属性は無関係
循環参照はselfがself自身をretainとか、hogeがselfをretainしてselfがhogeをretainしてとかとか、まさしく循環していることによりの
>>607 のコードだけだと、Auto変数をブロック内で使えば、strongでもretainされるのはdelegateだけなので、delegateがretainされようなんだろうが関係無いだろうということ
しかし、delegateが指すインスタンスとhoge(.clickedButton)が依存関係にあるならそうではないだろなということ
616 :
名称未設定 :2014/03/15(土) 20:36:20.18 ID:BT7kwJsz0
UITextViewの制御について質問です。 UITextViewを作成し、全角10文字で折り返す幅に設定します。 下記(1)のテキストを入力したとき、(2)となることを期待していますが、(3)となります。(2行目の先頭のスペースが、文字自体はあるにも関わらず表示されない) 改行文字を入れれば表示はされるのですが、改行文字を入れず、自動改行で(2)となるようにしたいです。解決策をご存知の方がいましたらご教示ください。 ※カーニング、リガチャを疑ってみましたが解決しませんでした。NSLayoutManagerを使ってみようかと思いましたが、調べてみてもイマイチそれらしいところに辿り着かず困っています。 (1)入力テキスト(□=全角スペース/■=全角文字) □■■□■■■□■■□□■■■■■□□■ (2) 期待する表示 □■■□■■■□■■ □□■■■■■□□■ (3) 実際の表示 □■■□■■■□■■ ■■■■■□□■
617 :
名称未設定 :2014/03/15(土) 20:37:54.67 ID:DqEC6lXI0
>>615 あそうか、self->_delegateになっちゃうからまずいね。
>>614 やっぱり、__weak id weakDelegate = delegate;こうしなきゃだめだ。
618 :
名称未設定 :2014/03/15(土) 20:58:23.71 ID:ZEUqB0AP0
>>615 __weak id weakDelegate = delegate;
とすることでhoge(.clickedButton)のAuto変数として使える
Auto変数は関数の中だけで存在するからこのblockの処理が終わるとweakDelegateは消える
ということでしょうか?
また、依存関係というのがわからないのですが
hoge(.clickedButton)を使っているクラスをAとして
hoge(.clickedButton)を宣言しているクラスはMyAlertViewですので
この場合依存関係は無いということでしょうか?
619 :
名称未設定 :2014/03/15(土) 21:31:27.11 ID:YNOkPK/N0
>>618 __weak id weakDelegate = delegate;
単なるAuto変数。ブロックはAuto変数を自由につかえちゃったりするのが便利だよね?
Auto変数に値をコピてそのAuto変数をブロック内で使うことにより、気にしなければならないのはAuto変数に限られるってことなんだけど
んー、deallocされる場合/オーナーシップのことを考えればいいと思うんだけど。
オーナーシップを考えれば、一時的に循環参照になろうが、ちゃんとオーナーシップを手放すように(インスタンス変数で保持しているインスタンスが必要無くなればインスタンス変数をnilにするとか)すればとか
よく読んでいないけど、UIAlertViewのなんでしょ?仮にUIAlertViewをインスタンス変数に保持していても、Alertが必要無くなったらnilにするでしょ?とか
620 :
名称未設定 :2014/03/15(土) 21:55:33.78 ID:ZEUqB0AP0
>>619 こんな感じで書いてるんですけど…
blockは便利だと思いますが、やっぱりまだ気持ち悪いんですよね。
メモリとか意識してコード書きたいのですがまだ理解ができていないので
- (void)Method
{
__weak id weakDelegate = self.delegate;
MyAlertView *alert = [[MyAlertView alloc] initWithTitle:@"タイトル" message:@"メッセージ" delegate:nil cancelButtonTitle:@"いいえ" otherButtonTitles:@"はい", nil];
alert.clickedButton = [^(int index) {
if (index == 1) {
if ([weakDelegate respondsToSelector:@selector(delegateMethod)]) {
[weakDelegate delegateMethod];
}
}
} copy];
[alert show];
}
}
621 :
名称未設定 :2014/03/15(土) 22:28:26.51 ID:YNOkPK/N0
>>620 alertはAuto変数であなたのコード上ではオーナーシップを持っているのは無い
alertが存在し続けられるのは、[alert show]により、alert自身(?)が自らオーナーシップを持つことによる
Alertの表示が終了するとalert自らオーナーシップを放棄することにより、オーナーシップを持つものは無くなるだろう
で、alert自らオーナーシップを放棄しても他にオーナーシップを持っているのはそのコード上(だけ)では存在しない
よって、clickedButtonも問題無くリリースされるだろう。それにより、ブロックで使用しているインスタンスも問題無くリリースされる
ので、
__weak id weakDelegate = self.delegate;
ではなく
id deleagate = self.delegate;
としても問題無いだろう
結論としては、
__weak id weakDelegate = self.delegate;
って、しているんだから、そもそも循環参照が起こるかどうかなんて言う疑問は存在しえない。なんで weak にしているか理解しよう。
622 :
名称未設定 :2014/03/16(日) 01:43:33.98 ID:nHhE2uNU0
xcodeを最新にしたのですが、OSも、MLからMavericksに変えないと、ダメでしょうか? iOS6非推奨の警告が頻発してるのはそのせいでしょうか?
623 :
名称未設定 :2014/03/16(日) 02:43:17.77 ID:ttkUBaBb0
>>622 いまのところ問題ないけど。ワーニングは別の話じゃないかな。
624 :
名称未設定 :2014/03/16(日) 02:54:12.70 ID:NISYIqPb0
>>603 レスありがとう。
で、よくよくコード読み返してみたら強参照してて、解放前にinvalidateと、self.timer = nilってしてた。
NSRunLoopが強参照するからweakにしておけばいいんだろうけど、今まで問題なく動いてたのが逆に気になる。。
もうちょいデバッグして解決したら報告します。
625 :
名称未設定 :2014/03/17(月) 00:23:11.95 ID:agAfsQoC0
>>621 返信ありがとうございます。
>なんで weak にしているか理解しよう。
わかりました、私の勉強不足のようですね…
丁寧な説明ありがとうございました。
626 :
名称未設定 :2014/03/17(月) 02:17:30.01 ID:lvpdJ259I
ぼくはアメリカ出身のホモなんだ! アプリを出したんだけど、日本以外からダウンロードされまくって軽い乱交広場になってるんだけど、 公開を日本限定にする方法はないかな? appだけど、調べてもグローバルに変える方法しかでないんだ! 教えてくれ頼むよブラザー!
627 :
名称未設定 :2014/03/17(月) 02:34:20.12 ID:kOsTX7Ma0
春だなぁ
628 :
名称未設定 :2014/03/17(月) 11:13:04.29 ID:izMBz/jG0
暖かくなったよなぁ
629 :
名称未設定 :2014/03/17(月) 16:42:25.23 ID:Q0EkE1HW0
メモリ管理で質問です。ARCは使っていないのですが、 まずViewControllerを貼り付けたときにメモリ使用量が5MBから200MBになります。 そのあとViewControllerを取り除いたときにメモリの使用量が180MBくらいまでしか戻りません IBOutletは等思い付く限り解放しているのですが、何か忘れているのでしょうか。 それとも、5MBまでぴったり戻る必要はないのでしょうか。ちなみにリークは検出されません。
630 :
名称未設定 :2014/03/17(月) 17:03:11.73 ID:nmz89ChP0
>>629 問題ないと思う。
心配なら、その操作を100回繰り返して、どうなるかみたら良いよ。
631 :
名称未設定 :2014/03/17(月) 17:56:34.72 ID:Q0EkE1HW0
>>630 ありがとうございます。何回かやりましたが200→180→200→180を繰り返すようです。
これでなぜ問題ないのか、原理的にちょっとわからないのですが、
たとえば同様のViewControllerが何個もあったとしたら、それぞれ開いて閉じての度に積もっていきませんか。
632 :
名称未設定 :2014/03/17(月) 19:22:14.78 ID:7pkwmb0h0
>>631 UIImageなんぞは内部的にキャッシュされているっぽい。それもビットマップにデコードされたのを(/も?)
180のときに現在のを終了させられないくらいメモリを喰う別のアプリを立ち上げてみたら?
633 :
名称未設定 :2014/03/17(月) 20:03:45.09 ID:/5LVVTn50
#import "ViewController.h" @implementation ViewController - (void)viewDidLoad{ [super viewDidLoad]; label = [[UILabel alloc] initWithFrame:CGRectMake(0, 300, 320, 50)]; label.textColor = [UIColor blackColor]; label.textAlignment = NSTextAlignmentCenter; [self.view addSubview:label]; label.text = @"aaa"; [[hoge alloc]stringset]; } -(void)labelset:(NSString *)string{ NSLog(@"%@",string); label.text = string; } /////////////////////////////// #import "hoge.h" @implementation hoge -(void)stringset{ NSString *string = @"bbb"; [[ViewController alloc]labelset:string]; } ViewControllerからhogeクラスを呼んでNSStringに値を入れて戻すと、Logには値が入るんですがLabelは更新されないんですが何故でしょうか?
634 :
名称未設定 :2014/03/17(月) 20:17:21.09 ID:7pkwmb0h0
>>633 >[[ViewController alloc]labelset:string]
新しいViewControllerのインスタンスに対してで
>NSLog(@"%@",string);
はインスタンスがどーのとは関係無いからは出る
>[[hoge alloc]stringset]
これを呼んでいるインスタンス(呼んでいる所のself)に対してではないから
>label.text = string;
は無意味(labelがnilだろうな)
[[ViewController alloc]labelset:string]
も
[[hoge alloc]stringset]
も、ありえない。alloc&init...ではないのでという点からも
初歩的な本を最初からやり直そう
635 :
名称未設定 :2014/03/17(月) 20:38:41.63 ID:/5LVVTn50
>>634 間違いだらけだったんですね・・・
正しくhogeクラス内のメソッドとViewController内のメソッドを呼ぶにはどうしたらいいんでしょうか?
636 :
名称未設定 :2014/03/17(月) 21:31:08.86 ID:kOsTX7Ma0
>>635 hogeにviewControllerを渡してやらないと駄目だな。
今のコードだとviewController-Aがhoge-Aを作り、hoge-Aが別にviewController-Bを作ってしまってる。
やりたいことは多分これでできるはず。
#import "ViewController.h"
@implementation ViewController
- (void)viewDidLoad{
[super viewDidLoad];
label = [[UILabel alloc] initWithFrame:CGRectMake(0, 300, 320, 50)];
label.textColor = [UIColor blackColor];
label.textAlignment = NSTextAlignmentCenter;
[self.view addSubview:label];
label.text = @"aaa";
[[hoge alloc] stringset:self];
}
-(void)labelset:(NSString *)string{
NSLog(@"%@",string);
label.text = string;
}
///////////////////////////////
#import "hoge.h"
@implementation hoge
-(void)stringset:(ViewController*)viewController{
NSString *string = @"bbb";
[viewController labelset:string];
}
637 :
名称未設定 :2014/03/17(月) 21:38:53.57 ID:7pkwmb0h0
>>636 [[hoge alloc] stringset:self];
を
[[[hoge alloc] init] stringset:self];
にしてやって。最低限でもw
638 :
名称未設定 :2014/03/18(火) 01:00:31.87 ID:tybQzlwd0
Instrumentsのallocationで見れば一発。
639 :
名称未設定 :2014/03/18(火) 06:35:30.32 ID:EwL2JUAa0
NSTimerって2個動かすと1個目が中断されたりしますか? NSRunLoopに入れてもうまく動かないんですが...
640 :
名称未設定 :2014/03/18(火) 08:20:32.25 ID:gLSMF8JM0
スマホ向けの画像リソースの製作方法のワークフロー等が詳しく書いてるサイトか本ないですか? iphoneむけゲームを自力で作ろうとしてるんですが画像の作り方がわからなくてつみました。
641 :
名称未設定 :2014/03/18(火) 11:30:46.58 ID:1uXFCDL50
642 :
名称未設定 :2014/03/19(水) 04:13:21.83 ID:EpSWXh2h0
UIGraphicsGetImageFromCurrentImageContext();で取得したUIImageにはreleaseを送ってはダメですよね?非ARCです。 allocationでこれが原因でメモリが積もってることは突き止めたのですが、releaseを送るとメモリは解決するのですが、 少し遅れておかしなタイミングでクラッシュします。自動で解放される様子もありません。
643 :
名称未設定 :2014/03/19(水) 04:30:35.76 ID:EpSWXh2h0
すみません自己解決しました。
644 :
名称未設定 :2014/03/19(水) 05:00:15.52 ID:No13h54s0
NSMutableArray の並び順を保存しようと思っています。 (1)writeToFile:で保存するのと、(2)NSData に変換してから保存するのではどういう違いがあるのでしょうか? [_items writeToFile:dataPath atomically:YES]; NSData *itemsData = [NSKeyedArchiver archivedDataWithRootObject:_items]; _items は NSMutableArray で、中身はディレクトリ内のファイルとサブディレクトリパスです。 これをテーブルに表示しています。
645 :
名称未設定 :2014/03/19(水) 15:51:26.19 ID:a5pCx4GI0
UIRefreshCntrollerみたいなビューを下ろした瞬間に更新が開始される方法じゃなくて公式ツイッターアプリみたいに指を離すと更新が開始されるやり方探してるんですがどうすればいいでしょうか ずっとビューを下ろしたまんまにするとその間更新処理がループするみたいで配列がたりません?みたいなエラーが出ます 普通に実行したり長くビューを下ろしたりしなければ問題ありませんでした 参考になるサイトだけでも教えて下されば
646 :
名称未設定 :2014/03/19(水) 16:53:35.47 ID:VFoD1Aad0
俺が使ってる限りだとTwitterのやつみたいに動作して、特定メソッドが呼ばれまくるみたいなことはおこらないんだけど、エラーの原因別にあるんじゃないの?
647 :
名称未設定 :2014/03/19(水) 17:09:11.67 ID:8ezExCVS0
UIBarButtonSystemItemの文字が実機でも英語のままなんですがどうしたらいいですか。 実機の言語環境は日本に設定してあります。
648 :
名称未設定 :2014/03/19(水) 17:10:59.19 ID:a5pCx4GI0
自分のコードがあまりスマートではないというか配列とか多めに使った強引なプログラムなのは自覚してるんで多分原因は別にある でも更新がループしないようなロード方法でそれは解決できるとおもいます それ以外は特に問題は見当たらないので
649 :
名称未設定 :2014/03/19(水) 17:24:17.34 ID:26WXQywp0
トリガ間違ってるんじゃ?
650 :
名称未設定 :2014/03/19(水) 17:51:32.06 ID:S5A1b4ic0
651 :
名称未設定 :2014/03/19(水) 18:51:47.31 ID:VFoD1Aad0
>>648 適当にフラグたてとくだけじゃあかんの?
652 :
名称未設定 :2014/03/19(水) 19:48:11.02 ID:+ah7ZZZk0
>>647 アプリを一旦削除して入れ直すと、ローカライズされた画面になることがある。
ならないかも知れない。
653 :
名称未設定 :2014/03/20(木) 10:59:29.84 ID:n54zeEtr0
>>650 ターゲットのローカライズ設定はまだしていません。実機の設定が反映されますよね?
>>652 ダメでした。
654 :
名称未設定 :2014/03/20(木) 12:39:59.93 ID:vptrIlsw0
>>653 アプリのローカライズに日本語が入ってないとデバイスの言語が日本語になっててもローカライズされないよ
アラビア語にローカライズなんかしてないのにデバイスがアラビア語だったら一部(システムで用意されてるボタンとか)だけアラビア語になったら困るだろ
655 :
名称未設定 :2014/03/20(木) 13:05:37.28 ID:IICoP46m0
ビューコントローラーを2個作って、2個目をSecondViewControllerと 名づけました。 FirstViewControllerにボタンを1個作り、modalセグエでSecondViewControllerに遷移する ようにストーリーボードで作りました。セグエはgoNextと名づけました。 SecondViewControllerにラベルを2個貼りました。 ラベルはLabel_1とLabel_2としました。 アクセス制限に注意して、SecondViewControllerの.hファイルにIBoutlet接続しました。 FirstViewControllerの.mに -(void)prepareForSegue:(UIstoryboardSegue *)segue sender:(id)sender{ SecondViewController *vc =segue.destinationViewController; if([segue.identifier isEqualToString:@"goNext"]){ vc.Label_1.text=@"こんにちは”;} なぜか、エラーが出てしまいます。(ビルドは成功します) 何日か考えてるうちにうつ病になりかけました。ヒントを教えてください。
656 :
名称未設定 :2014/03/20(木) 14:32:39.77 ID:Pt5IAnYV0
横画面固定のアプリを開発中なのですがUIImagePickerControllerがうまく使えず困っています。
ttp://blog.atgs.jp/index.php/ios7_with_uiimagepickercontroller/ を参考に、OrientationでPortraitを許可して、不格好ながら縦画面ではあるもののImagePicker表示することができました。
さてそうは言ってもImagePicker以外のviewで縦画面を許可するわけにはいかないので、すべてのviewController内で
-(BOOL)shoudAutorotate;でNOとしてみたのですが、全く無視され回転してしまいます。
-(NSUInteger)supportedInterfaceOrientations;でlandscapeを返してみても駄目でした.
何かよい方法はないものでしょうか?
657 :
名称未設定 :2014/03/20(木) 15:11:12.39 ID:weYlk3WK0
>>656 UINavigationControllerかUIImagePickerControllerにカテゴリ追加
(shouldAutorotate/supportedInterfaceOrientations)で行けたはずです。
658 :
名称未設定 :2014/03/20(木) 15:28:54.18 ID:lzDLe/qk0
>>655 prepareForSegue:sender:
では、destinationViewControllerのViewControllerインスタンスは作られるが、viewはまだロードされていない
659 :
名称未設定 :2014/03/20(木) 15:39:20.87 ID:Pt5IAnYV0
660 :
名称未設定 :2014/03/20(木) 16:08:31.00 ID:Pt5IAnYV0
>>657 だめみたいです。最新の環境だとちょっと違うのかもしれません。継承でもだめでした。
661 :
名称未設定 :2014/03/20(木) 18:15:14.15 ID:weYlk3WK0
新規のSingleApplicationを作ったあとに、ボタン配置して、以下のコード実行すると 横モード固定になりますけど、こういうことじゃない? あと、UIImagePickerControllerにカテゴリ(shouldAutorotate/supportedInterfaceOrientations)も 追加しておく - (IBAction)test:(id)sender { if([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary]) { UIImagePickerController* picker = [[UIImagePickerController alloc]init]; picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; picker.allowsEditing = NO; [self presentViewController: picker animated:YES completion:nil]; } } -(BOOL)shouldAutorotate { return YES; } -(NSUInteger)supportedInterfaceOrientations { return UIInterfaceOrientationMaskLandscape; }
662 :
名称未設定 :2014/03/20(木) 18:37:26.23 ID:utApVWX/0
こんにちわ、タップ後パンしている間線を引き、指を離すと描くのを終わる。 っといったものを勉強のためテストで作成しています。 まだ初心者なのでたいした知識がありません。現在自分が思い浮かぶ方法で、 drawRectでmoveToPointにタップを開始した地点を登録して、パンして動かしている間、 その動かした地点までを逐一addLineToPointで登録して直線にしていくっといったことを考えています。 タップした座標は UITouch *touch = [touches anyObject]; firstLocation = [touch locationInView:self.view]; で取れますが、パンして動かした現在の座標を返す。っといったことはどのようにすれば良いのでしょう? 指を離した座標ではなく、現在パンしている座標を知りたいのです。 非常にわかりにくい文章で申し訳ありません。お知恵を拝借できれば幸いです。
663 :
名称未設定 :2014/03/20(木) 19:29:56.48 ID:SAbqkRFa0
質問です DynamicAnimator等で物理演算をして、画像を積み重ねています。 四角い画像は普通に出来るのですが、 丸い画像(背景透明でpng)を積み重ねても、丸に沿って積み重ならず、四角い画像として積み重なっていきます。 どうすれば丸にそって積み重ねていくことが出来ますか? 回答お願いします。
664 :
名称未設定 :2014/03/20(木) 19:31:06.90 ID:n54zeEtr0
665 :
名称未設定 :2014/03/20(木) 19:31:27.69 ID:lzDLe/qk0
>>662 UIViewはUIResponderのサブクラスで、
touchesBegan:withEvent:
touchesMoved:withEvent:
touchesEnded:withEvent:
が、ある。それぞれ、タッチ初め、移動、終わりで、逐次呼ばれる
でも、他の別のタッチとかもとか諸々便利にしてくれる、UIGestureRecognizer(UITapGestureRecognizer)があるので、普通はそれを使う。かな
666 :
名称未設定 :2014/03/20(木) 19:34:42.62 ID:lzDLe/qk0
>>665 ×UIGestureRecognizer(UITapGestureRecognizer)
○UIGestureRecognizer(UIPanGestureRecognizer)
667 :
名称未設定 :2014/03/20(木) 20:52:17.46 ID:iOEvf4f+0
668 :
名称未設定 :2014/03/20(木) 23:41:46.98 ID:utApVWX/0
>>664 ,665
回答ありがとうございます。
おかげさまで先に進めそうです。
669 :
名称未設定 :2014/03/21(金) 00:52:21.59 ID:e745EGD90
.appディレクトリにファイルを書き込むことは不可能ですか?
670 :
名称未設定 :2014/03/21(金) 01:18:23.23 ID:ufX5yLNC0
不可能。可能であってもそんな気色悪いことしようと思わないで
671 :
名称未設定 :2014/03/21(金) 10:16:30.17 ID:3zTmuGS30
MPMediaQueryで取って来た曲の集まりに対して、「○番目から再生していってよ」っていうのはどうすればいいんだろう?
672 :
名称未設定 :2014/03/21(金) 10:22:10.66 ID:GShg8VNd0
簡単にプロジェクトを共有する方法とかってありますか? ググってdropboxでの共有する方法を試したのですが、古い記事だったのでバージョンの違いから成功しませんでした
673 :
名称未設定 :2014/03/21(金) 12:04:39.34 ID:Vm4jLO830
共有ってどういう範囲の共有? 普通にgit使うのがいいと思うぜ
674 :
sage :2014/03/21(金) 14:26:20.12 ID:seTppwz60
>>671 自己解決。
setQueueWithQueryにfirstItemって引数あった。
675 :
名称未設定 :2014/03/21(金) 15:23:46.23 ID:xB99KcuA0
こっちのスレ教えてもらったんで、改めて質問させて下さい 標準のメールアプリの新規作成画面と同じようなものって何で作ったらいいのでしょうか? 単純に、UITextFieldで枠線なしにして、各コントロールの間に線を引いてるって形なんでいいんでしょうか? ただ、この場合でも、複数行になる可能性のある本文部分など、行数によって高さが変わるものは、都度高さ変えるしかないんですかね?
676 :
名称未設定 :2014/03/21(金) 16:35:25.23 ID:EQR4BRAB0
質問なのですが、NSErrorから画像データを取得することは可能なのでしょうか? Content-Transfer-Encoding" = binaryというのが怪しいのですが… Error Domain=AFNetworkingErrorDomain Code=-1011 "Expected status code in (200-299), got 404" UserInfo=0x177358c0} { status code: 404, headers { "Cache-Control" = private; Connection = "keep-alive"; "Content-Disposition" = attachment; "Content-Length" = 3136; "Content-Transfer-Encoding" = binary; "Content-Type" = "image/jpeg"; Date = "Fri, 21 Mar 2014 06:37:34 GMT"; Server = "nginx/0.7.67"; "Set-Cookie" = "_session_id=8fd04702dd88cdcbabab136b60be286d; domain=loger.ra9.jp; path=/; expires=Sun, 20-Apr-2014 06:37:34 GMT"; "X-Runtime" = 27; } }}
677 :
名称未設定 :2014/03/21(金) 17:22:32.01 ID:7WvPe1mL0
>>676 NSErrorじゃなくてresponse見たらいいんじゃないの?
678 :
名称未設定 :2014/03/21(金) 17:32:24.49 ID:EQR4BRAB0
>>677 返信ありがとうございます。
すみません、解決しました。
679 :
名称未設定 :2014/03/21(金) 17:37:35.72 ID:ehWpKPnx0
>>675 普通にUITableViewだと思うぞ。
680 :
名称未設定 :2014/03/21(金) 18:13:07.51 ID:xB99KcuA0
>>679 ありがとう
TableViewだと一番下のセルの下側に線が入ってしまうんだけど、標準のメールアプリの新規作成画面だと、本文入力の下には線がなかったので、どうやってるのかなと
681 :
名称未設定 :2014/03/21(金) 19:02:39.49 ID:BY25gv+v0
662です。たびたびすいません。 おかげさまで、viewに自由に線を引けるようになりました。 自分なりに調べて作成したコードが - (void)view_Dragged:(UIPanGestureRecognizer *)sender { if(sender.state == UIGestureRecognizerStateBegan){ firstLocation = [sender locationInView:self.view];} if(!startPoint.x){startPoint=firstLocation;} CGPoint addPoint= [sender locationInView:self.view]; customView *lineView= [[customView alloc] initWithFrame:self.view.frame startPt:startPoint endPt:addPoint]; [self.view addSubview:lineView]; startPoint = addPoint; if(sender.state == UIGestureRecognizerStateChanged){ if(startPoint.x == firstLocation.x && startPoint.y == firstLocation.y){NSLog(@"OK!!");} } if(sender.state == UIGestureRecognizerStateEnded){ startPoint = CGPointZero;} } です。このようなコードですと、パンしている間addSubviewでselfViewの大きさのビューを追加し続けるということになります。 ※customViewはカスタムクラスでstartPt:startPointからendPt:addPointまでの直線を描きます。 続きます。
682 :
名称未設定 :2014/03/21(金) 19:03:25.56 ID:BY25gv+v0
>>681 の続きです。
追加したview(線が描かれて追加されたビュー)を一つのビューにすることは可能でしょうか?
また、addSubviewで追加しているので無理っぽいと思うのですが描写の開始位置とパンしている座標が重なった時
if(startPoint.x == firstLocation.x && startPoint.y == firstLocation.y){NSLog(@"OK!!");}
で、描かれた図形を塗りつぶしたいと考えているのですが、可能でしょうか?
もしできたとしても今の私では理解できないかと思いますが、参考までに可能ならば方法を教えていただけないでしょうか?
拙い文章で伝わりにくいかとは思います。申し訳ありません。もしよろしければ教えていただければありがたいです。
よろしくお願いします。
683 :
名称未設定 :2014/03/21(金) 20:09:54.88 ID:ufX5yLNC0
>>681 ,682
線一本毎にひとつのVIewという発想はなかったわ
作成するのはポリゴンだとして、ポリンゴンの表現としてはCGPointを納めたNSArrayにする
CGPointをNSArrayに納めるのは、自分でクラスを作るか、[NSValue value:&addPoint withObjCType:@encode(CGPoint)]なんぞで
ポリゴンとしてのNSArrayは、そのview_Dragged:メソッドがあるクラスのインスタンス変数に持っておけば、追加するポイントが最初のポイントと同じかどうかとかすぐわかるでしょう
ポリゴンとしてのNSArrayに新しいポイントを追加したら、まんまカスタムクラスなViewに渡す
カスタムクラスなViewは、ポリゴンとしてのNSArrayをプロパティに持ち、そのポイントをぐるっと描画するだけ
また閉じているポリゴンか開いているかも最初と最後のポイントが同じかどうかで直ぐわかるでしょう
てな
ポリゴンとしてのNSArrayでなくて、UIBezierPathにした方がより具体的かと思われるけど
684 :
名称未設定 :2014/03/21(金) 21:07:17.96 ID:B5L2tOxGi
こんばんは。 画面にラベルやボタンや画像を配置して ボタンを押して、変化させてます。 別なある一つのボタンを押せばviewdidload の処理前に戻りたいですが、可能でしょうか?
685 :
名称未設定 :2014/03/21(金) 21:19:31.87 ID:rt/ntDp60
>>681 質問の本題とは違うけど
その場合の制御文はifよりswitchの方がよさげ。
stateがbegan,changed以外の場合はdefaultで必ずendedの処理をするとかしないと、cancelledとか来たらまずいでしょ。
switch (sender.state) {
case UIGestureRecognizerStateBegan: { beganの処理 } break;
case UIGestureRecognizerStateChanged: { changedの処理 } break;
case default: { endedの処理 } break;
ifで書くなら、全部ifで評価しないで↓
if () {} else if () {} else {}
686 :
名称未設定 :2014/03/21(金) 22:48:31.61 ID:ehWpKPnx0
687 :
名称未設定 :2014/03/21(金) 22:54:00.89 ID:BoL8ufXZ0
>>684 可能
全部破棄して元の画面を生成し直せば良いんじゃね
688 :
名称未設定 :2014/03/22(土) 00:45:38.90 ID:CKxRRNuo0
KVOのcontextがよくわからないんですけど ようするに ・一意 ・コンテキストの同一性を確かめられる であればよくて グローバル変数(定数)を用意しておいて、そのアドレスを渡すとか 一意な文字列定数を用意しておいて、その先頭アドレスを渡すとかすればよいですか? つまり OK: char *const MyContext = "一意な文字列"; const char MyContext; //アドレスを渡す ダメ: void * MyContext; char * MyContext;
689 :
名称未設定 :2014/03/22(土) 11:55:06.30 ID:9JICUXnr0
UIProgressView、UISliderなどUIImageでパーツ画像を差し替えて外見をカスタマイズするプロパティが iOS 7.1から軒並み無効になっています。バグですか?仕様の変更ですか?
690 :
名称未設定 :2014/03/22(土) 13:09:10.53 ID:bqNz0VQp0
質問です。 アップデートの審査が通過してストアに上げたのですが アプリ名のワードや設定したキーワードで検索をしてもヒットしません。 この問題を解決したいです。 ご存じの方がいらっしゃたら教えて頂けますでしょうか。
691 :
名称未設定 :2014/03/22(土) 13:31:11.79 ID:o+q8K6OZ0
>>688 調べてたら自由定義だから言ってる通りの判断用途に使っても良いし、callbackのselectorでも良い様子
知らんかったから調べるきっかけになったわ
>>689 何をもってバグだと思ったのだろうか
バグと仕変の違いはなんだろ
692 :
名称未設定 :2014/03/22(土) 14:08:39.15 ID:9JICUXnr0
>>691 ひょっとしたら私が知らないだけで代替のメソッドがあるかもしれないので。
あなたは使ってないから関心ないのかもしれませんが、クリティカルな人もいるんですよ。
693 :
名称未設定 :2014/03/22(土) 14:12:22.95 ID:JFTsXpKM0
だったらそう聞けばいいだけで、「バグですか?仕様の変更ですか?」と聞くから、何言ってんのこの人はとなるのだろ
694 :
名称未設定 :2014/03/22(土) 14:20:27.71 ID:o+q8K6OZ0
>>692 >>693 で言われてる通りなんだよね
ぶっちゃけると関心はないし、急ぎなのもわかるよ
でもさ、最新OSを扱うならバグと判断するための調査がいるし、そのためのβ版配布なんじゃなかろうか
もしバグだと思うならApple Developer Centerで報告すれば良い話でもあるし、仕変なら海外サイト見て回ったり、やっぱりあれこれ試す必要ありそうじゃない?
695 :
名称未設定 :2014/03/22(土) 14:25:27.28 ID:9JICUXnr0
じゃあ、知らないなら知らないと言えばいいですよ、そっくりそのままお返しします。
696 :
名称未設定 :2014/03/22(土) 14:31:13.87 ID:o+q8K6OZ0
そっくりそのまま返されてもな つまり、俺に調査とバグであれば報告しろと やなこったってなるだけだぞwwww
697 :
名称未設定 :2014/03/22(土) 14:33:44.54 ID:JFTsXpKM0
698 :
名称未設定 :2014/03/22(土) 14:34:27.82 ID:JFTsXpKM0
質問して自分の望む答えじゃないとキレるって、キレキレやねっ!
699 :
名称未設定 :2014/03/22(土) 14:37:19.16 ID:o+q8K6OZ0
700 :
名称未設定 :2014/03/22(土) 14:38:48.37 ID:JFTsXpKM0
>>699 まあ、ちょっとググってみただけだけど
こんな直ぐに見つけられるようなこと、あんなレスしている暇があったらしやがれっは思っているよw
701 :
名称未設定 :2014/03/22(土) 15:01:49.51 ID:9JICUXnr0
>>697 そこは投稿があった日にすぐ見つけたのですが、そのときはまだ有用な回答はありませんでした。
それきりチェックしてなかったので、どうもありがとうございます。
ご自身でおっしゃる通りちょっとググればすぐ見つかる記事ですので、
わざわざカッコつきで『「すぐに」見つかる』とか書いて頂く必要はありません。更新を追ってなかったのは不覚ですが。
それより、答えるわけでもなく質問が悪いと煽ったり、意図して相手を不愉快にさせるレスを入れることが
空気として許されていることが残念ですねここは。
702 :
名称未設定 :2014/03/22(土) 15:12:10.53 ID:U9RJv9Ub0
ひーん
703 :
名称未設定 :2014/03/22(土) 15:28:25.23 ID:o+q8K6OZ0
ほんと最初のレスをくれたときから要らん一言多いな
>>701 は
>>1 を声だして読め、でいいわ
>>700 にわざわざ時間とってまで書いてもらってるのに
この恩を仇で返す感じはケンカ売ってるとしか((
704 :
名称未設定 :2014/03/22(土) 15:44:48.61 ID:Z52vCZg/0
まあ二回目に来たら 空気でわかるからスルーされるだろw
705 :
名称未設定 :2014/03/22(土) 17:35:08.42 ID:f0bguBtD0
>>690 日本のApp Storeで販売されてるの?商品ページにはたどりつけてる?
706 :
名称未設定 :2014/03/22(土) 17:36:06.39 ID:JFTsXpKM0
>>703 有用wなAnswerあったの3/11やん
そんなアホなっ、単なるプライドの高い××なやつがよくつく嘘だなあとしか思えない。でなかったら単なる××w
なんかダラダラ言っているけど、自分が空気悪くしているのがわからないんだから、困ったもんだねぇ
707 :
名称未設定 :2014/03/22(土) 17:42:39.72 ID:bqNz0VQp0
>>705 レスありがとうございます。
iphone実機で日本のApp Storeに配信されていることは確認済みです。
アプリも問題なくインストール出来ています。
配信されてるバージョンも最新のもであることも確認済みです。
708 :
名称未設定 :2014/03/22(土) 18:20:07.74 ID:o+q8K6OZ0
>>706 まあこれ以上のことを俺 は言わないけど、次から曖昧なのは放置するか、
>>1 とだけしか返えさんようにするわ
>>707 検索結果に表示されてこないのは、Apple Developer Centerになんで引っかからないのかメールか電話したほうが良いかもしんないね
たぶん調べようがなくて原因がわからん気がする
709 :
名称未設定 :2014/03/22(土) 18:28:31.15 ID:bqNz0VQp0
>>708 そうですね。
連絡してみようと思います。
ありがとうござました。
710 :
名称未設定 :2014/03/23(日) 01:20:22.52 ID:66p4Dq970
幼稚なおじさん達のプライドの張り合いカッコイイ!
711 :
名称未設定 :2014/03/23(日) 11:50:39.70 ID:60Chs5rH0
中学生なのぼくちゃん?
712 :
名称未設定 :2014/03/23(日) 13:44:09.94 ID:y2qW+Pym0
特定アプリ、具体的にはミュージックアプリを作ってみたくてとりあえずiPhoneアプリ開発「超」入門の本を買ってみる これ読んだだけで作れるようになるとは思ってなかったけど、一通り読み終わってさあどうしよう プログラミング自体に興味があるわけではないんですけどやはりCの勉強から遠回りするのが鉄板なんでしょうか ググって音楽再生関連のブログとかを見てもコードがいまいち理解できず次の工程の取っ掛かりがつかめません
713 :
名称未設定 :2014/03/23(日) 13:52:47.78 ID:O8dptaM+0
>>712 MPMusicPlayerController使えば簡単だろ。
714 :
名称未設定 :2014/03/23(日) 14:51:47.52 ID:T15VX8UN0
>>712 再生ボタンを押したら音楽を鳴らす系のアプリ?
自分も最初は超入門の本を買ってはじめたけど、これで覚えられる
のはXCodeの使い方とアプリの作り方くらい。
次はiPhone/iPadアプリ開発.逆引き大全500の極意って本がおすすめ。
作りたいアプリの形が決まっているのなら、これのサンプルコードを
使ってアプリを作ると楽。理解出来るようになると、ブログに
書いてたことも理解出来るようになってくると思う。
715 :
名称未設定 :2014/03/23(日) 16:57:16.00 ID:NmrUmsDJ0
tableViewでimageViewを設定しているCellと設定していないCellを混合で表示しています。 画像がない場合はcell.imageView.image = nil;としていて画像自体はなくなるのですが、画像がないのに横線が短いCellができてしまいます。 どうしたらいいですか。
716 :
712 :2014/03/23(日) 18:23:00.61 ID:y2qW+Pym0
>>713 ,714
標準のアプリをちょっと変更したようなものを作ろうとしてます。
まだ始めたばかりで習得が足りないから当然なんですけどリファレンスのページとか見ても
曲一覧を取得してリスト表示に結びつけるのがさっぱりな状態です。
わからんことだらけでモチベーションが下がってきたので基礎の基礎から勉強したほうがいいのかと
思ったんですが(実際込み入ったことするならそのほうがいいんでしょうけど)
紹介された本とか他のサンプルとか見てもう少しがんばってみます。
717 :
名称未設定 :2014/03/23(日) 21:43:12.33 ID:Z+4XSt1F0
681です。
多数のレスありがとうございます。お礼を書き込むのが遅れてすいません。
>>683 ポリゴンは全くわかりませんが、新たに勉強してみる意欲が湧きました。今後の参考にします。
>>685 確かに仰る通りですね、参考にしてコードを直しました。
>>686 ありがとうございます。参考します!
>>687 なるほど・・・なんとなくわかりそうでわかりません。が「可能」であるというレスは大変参考になります。
重ねてになりますが、多数のレスありがとうございます。またお礼が遅れて申し訳ありません。
たぶんまた何度かお知恵を拝借させてもらうかと思いますがよろしくお願いします。
718 :
名称未設定 :2014/03/24(月) 00:26:39.36 ID:1DjsQBxa0
こんにちは。アプリからアプリ内に保存した画像は元からある画像とはディレクトリが異なるので、 imageNamed:で呼ぶとパス違いで読み込めません。そこでimageNamed:を以下のように拡張したのですが、 あまりに処理速度が遅くなってしまって困っています。 + (UIImage *)imageNamed:(NSString *)name{ NSString* path = [[NSBundle mainBundle] pathForResource:name ofType:@"png"]; UIImage* image = [UIImage imageWithContentsOfFile:path]; if(!image){ path = [NSString stringWithFormat:@"%@/%@.png",[NSHomeDirectory() stringByAppendingPathComponent:@"Documents"],name]; image = [UIImage imageWithContentsOfFile:path]; } return image; } 参考として上記メソッドを5回ほど通過しただけで、オリジナルと比べて2秒から3秒遅くなります。 imageNamed:が高速なので相対的に遅くなるのは認識してはいますが、 何かよいアイディアがないものでしょうか?
719 :
名称未設定 :2014/03/24(月) 01:08:27.76 ID:hcVlK1OP0
>>718 UIImageクラスのimageNamed:の挙動を勝手に変えるのは良くない。別クラスのメソッドにするならいいけど。
遅くなる理由は、本来のimageNamed:は一度読み込んだ画像をキャッシュしてるけど、拡張版はキャッシュしてないからじゃないかな?
720 :
名称未設定 :2014/03/24(月) 01:09:04.02 ID:a3M3Pnsw0
>>718 このカテゴリメソッドを10回実行してオリジナルと比べたら
オリジナル 0.000303秒
マイメソッド 0.003123秒 (10.293243倍)
@implementation UIImage (Extension)
+ (UIImage *)myMethod:(NSString *)name {
UIImage *image = [UIImage imageNamed:name];
if (0 /*image*/) { //比較用に通らなくしてある
return image;
} else {
NSString *path = [NSString stringWithFormat:@"%@/%@.png",[NSHomeDirectory() stringByAppendingPathComponent:@"Documents"],name];
return [UIImage imageWithContentsOfFile:path];
}
}
@end
721 :
名称未設定 :2014/03/24(月) 01:11:34.35 ID:a3M3Pnsw0
あ、iPhone5ね。 2秒もかからんだろ。どんなサイズの画像?
722 :
名称未設定 :2014/03/24(月) 01:35:43.68 ID:1DjsQBxa0
どうもありがとうございます。
>>719 最悪、継承しようと思うのですが、既に大部分のコードがあり書き換えが膨大だったもので...。
>>721 600*600pxくらいのpng画像が、状況によって3~7回です。
テストして頂いた結果では体感レベルではほとんど変わりませんね。
他の部分のロジックがおかしいのかもしれないので、再検討してみることにします。
ただしこの拡張コードを取り除くと元の速度に戻るので、ちょっと暗闇ですが...。
723 :
名称未設定 :2014/03/24(月) 01:38:52.31 ID:1DjsQBxa0
連投失礼します。テストして頂いたメソッドではimageNamed:を使っているんですね。 やっぱりimageNamed:の上書きを諦めるしかないのかもしれません。
724 :
名称未設定 :2014/03/24(月) 05:05:49.53 ID:lv3MRTXT0
てか、普通にコールする側で分岐しろよ imageNamedを上書きなんて、かなり変なことやってると思わないか? 変なことやってるときってのは、たいてい悪いやり方をしてるときだ
725 :
名称未設定 :2014/03/24(月) 08:41:22.61 ID:twhR3s2b0
726 :
名称未設定 :2014/03/24(月) 08:59:59.17 ID:CCMlC+EA0
>>725 >画像がないのに横線が短いCell
これが意味不明
727 :
名称未設定 :2014/03/24(月) 09:16:44.16 ID:twhR3s2b0
728 :
名称未設定 :2014/03/24(月) 11:57:16.40 ID:bKw9x1P/0
自動継続の月額課金のプログラミングについて 教えていただきたいことがあります。 このスレッドでよいでしょうか。 よろしくお願いします。
729 :
名称未設定 :2014/03/24(月) 12:15:11.68 ID:a3M3Pnsw0
>>727 これって カスタムセル?
セルが再利用されてる関係でそうなってるっぽいが、
cell.imageView.image = nil; ←これでいいんだっけ?
これだとimageViewは乗っかったままだよね。
730 :
名称未設定 :2014/03/24(月) 12:15:55.48 ID:Pd72z6CY0
>>727 [cell setSeparatorInset:UIEdgeInsetsZero];
これでどーすかねー
731 :
名称未設定 :2014/03/24(月) 13:16:55.64 ID:G1N7SIKF0
>>728 教えて欲しいことを書かないと誰も返事しないと思うから
>>1 読んで質問書き直した方が良いよ
732 :
名称未設定 :2014/03/24(月) 13:22:32.57 ID:twhR3s2b0
>>729 標準のセルです。imageViewはreadOnlyでcell.imageView = nil;はエラーになります。
>>730 setSeparatorInsetでなんとか凌げそうです。
if(image)
{
cell.imageView.image = image;
[cell setSeparatorInset:UIEdgeInsetsMake(0, 74, 0, 0)];
}
else
{
cell.imageView.image = nil;
[cell setSeparatorInset:UIEdgeInsetsMake(0, 15, 0, 0)];
}
OSのバージョンアップに備えてcell.imageView.image = nil; で線の長さは自動調節してほしいのですが、他によい方法ないでしょうか。
733 :
名称未設定 :2014/03/24(月) 13:26:57.11 ID:Pd72z6CY0
>>732 まぁ、後は自分でがんばりなよ(・∀・)
734 :
名称未設定 :2014/03/24(月) 13:31:28.11 ID:G1N7SIKF0
>>727 あーー意味がわかった気がするけど、なんかおかしい
下から三つ目のNO IMAGEが何か引っかかる
NO IMAGEって画像だよね?
なんか画像の高さの関係でseparatorにかぶってるだけにも見えるんだけど、どうなんだろ
画像の情報がないからわからないけど、その辺が怪しい気がするな
735 :
名称未設定 :2014/03/24(月) 13:35:39.78 ID:G1N7SIKF0
NO IMAGEじゃねぇ( ;´Д`) NON NAMEだけど、NONE NAMEじゃないの?wwww
736 :
名称未設定 :2014/03/24(月) 13:58:29.77 ID:twhR3s2b0
>>735 すいませんnone nameですね。画像がない場合にattributedStringで色付きのテキスト表示になってます。
作ってるアプリを流用したのでわかりにくかったですね。
検証用に画像表示だけのtableViewを作りましたがやはりcellの再利用により一度短くなった横線はもとにもどらないようです。
if (indexPath.row%3)
{
cell.imageView.image = [UIImage imageNamed:@"hoge.png"];
}
else
{
cell.imageView.image = nil;
}
cell.textLabel.text = [NSString stringWithFormat:@"row %d",indexPath.row];
ttp://www.rupan.net/uploader/download/1395636844.png >>733 このままだとiOSの仕様変更に毎回対応しないといけないので、できれば数字指定でない方法をみつけたいです。
もし他に方法ありましたらお願いします。
737 :
名称未設定 :2014/03/24(月) 14:03:44.58 ID:a3M3Pnsw0
>>736 OSの仕様変更に影響受けないようになら、カスタムセルがいいんじゃない?
738 :
名称未設定 :2014/03/24(月) 14:06:52.77 ID:rctYS2s10
>>736 >このままだとiOSの仕様変更
カスタムなUITableViewCellにして、imageViewもtextLabelもセパレータも自分でUIImageViewとUILabelとUIViewを置いて好きにレイアウトすりゃええんちゃうの
739 :
名称未設定 :2014/03/24(月) 14:07:27.62 ID:rctYS2s10
被った。そーりー
740 :
名称未設定 :2014/03/24(月) 14:47:10.01 ID:twhR3s2b0
>>737 >>738 標準にあわせるのが好きなので標準Cellとして動いて欲しいのです。
>>732 のコードだと擬似的にiOS7の標準Cellのセパレータを再現してるだけなので...。
741 :
名称未設定 :2014/03/24(月) 14:53:28.20 ID:ekJ2WWFe0
画像無し用の画像用意してそれ表示しては
742 :
名称未設定 :2014/03/24(月) 16:10:51.22 ID:twhR3s2b0
>>741 透明画像を用意してもセパレータは短くなってしまいます。
743 :
名称未設定 :2014/03/24(月) 16:36:31.93 ID:G1N7SIKF0
ちょっとまて
標準の動作が好きなのはわからないでもない
変な継承しているせいで、後で苦労したことがあるからわかる
ただ、今回、
>>742 のやりたいことはcellを継承する他に方法なんてない気がするぞ
cell.contentViewにaddSubViewすることもできるけど、addSubViewするとさらにおかしな挙動になるし
このcellはそういうものと納得するしかない気がするが……
744 :
名称未設定 :2014/03/24(月) 17:26:54.05 ID:Ogevw1QH0
Objective-C的にはNSObjectを継承したMyCustomViewCellとか作って中にUITableViewCell入れればいいと聞いた。>変な継承
745 :
名称未設定 :2014/03/24(月) 17:28:39.33 ID:j1FapGOo0
変な質問でしたら、スルーしてください。 アプリを作るのにMVCを意識して作れと言われますが、 カスタムクラスは主にモデルを構築するためにありますか? 私は文字列やデーターの処理を書いたりしてます。 ビューは言わずもがな。UI部品ですよね。 コントローラーはビューコントローラーとかアップデリゲートで 自動的にメソッドが実行されるものを指すのでしょうか?
746 :
名称未設定 :2014/03/24(月) 17:48:29.46 ID:Ogevw1QH0
MVCもなんか作ってるものによって変わるせいで 「オブジェクト指向」って言葉並に混乱してる気がするが モデルはマシンによらない独立した抽象モデル、例えばRPGのワールドそのもの ビューはそれを表示するUI、そして、コントローラはその間を埋めるゲームルール管理。 みたいに考えているので、データ寄りが「モデル」 データを弄ってUIとやりとりするプログラム本体が「コントローラ」側みたいな…
747 :
名称未設定 :2014/03/24(月) 17:51:55.40 ID:j1FapGOo0
>746 そうですか〜 それぞれ、クラスを分けてプログラムしろ的な感じですよね。
748 :
名称未設定 :2014/03/24(月) 18:28:15.91 ID:G1N7SIKF0
>>744 似たような感じのことかなぁ
cellなのかviewControllerなのかわからんcellとセットになってるxibがいくつもあるプロジェクトだったわ。。
TableViewの内部ロジックもcellもごちゃついてたなぁ
>>745 モデルはNSObjectをカスタマイズして、データの型として扱うことがあるよ
データをシリアライズして保存したとき、保存したデータをデシリアライズすればその型をまんま使えて助かったりとかする
ビューは外観だけど、外観を表すのに必要なら処理も書くよ
コントローラはビューとモデルを結びつけるのに必要なものと思ってる
必要ならモデル同士の結び付きにも使われたりするんじゃなかろうか
もちろんビュー同士もありえるよね(ViewContrllerが良い例だけど
749 :
名称未設定 :2014/03/24(月) 19:16:52.51 ID:G1N7SIKF0
750 :
名称未設定 :2014/03/24(月) 21:15:56.58 ID:twhR3s2b0
>>743 そうですね。セパレータの長さが戻らないことも「標準」と受け止めて考えることにします。
皆様いろいろとありがとうございました。
751 :
名称未設定 :2014/03/24(月) 21:27:03.57 ID:3W9d1aEO0
以下のようにしたsegmentedControlで 2をタップしハイライトされた状態で、2がタッチされた場合のイベントを取得したいのですが可能でしょうか momentaryではなくハイライトされた状態でイベントを検知したいです NSArray *arr = [NSArray arrayWithObjects:@“1”,@“2”, @“3”, nil]; UISegmentedControl * segmentedControl =[[UISegmentedControl alloc] initWithItems:arr]; [segmentedControl addTarget:self action:@selector(action:) forControlEvents:UIControlEventValueChanged];
752 :
名称未設定 :2014/03/24(月) 22:29:09.69 ID:cMRSnrxY0
iPhoneの「ミュージック」にて再生している曲のイコライザーを作成したいのですが、 Core AudioやAV Foundation Audio Queue等々調べては見たものの、 どこから手を付けて良いのか悩んでいます。 手がかりや参考になるサイト等、アドバイスをお願いします。
753 :
名称未設定 :2014/03/24(月) 23:41:52.07 ID:a3M3Pnsw0
>>752 イコライザって設定アプリにあるんだな、わからんかったw
AUGraphでノードにkAudioUnitSubType_AUiPodEQ指定するんだよ。
754 :
名称未設定 :2014/03/25(火) 00:06:38.62 ID:qsNyyIDR0
こんばんわ。 すごい基礎的なことかと思いますが、教えてください。 UIImage* picture_panel= [UIImage imageNamed:@"xxx.png"]; UIImageView* panel_view=[[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 50, 50)]; panel_view.image=picture_panel; [self.view addSubview:panel_view]; これで、viewにimageを設定してself.viewに追加します。 この後、UIimageで作成したpicture_panel内のimageNamed:@"xxx.png"という、設定したimageNameをとりたいのですが、 どのようにすれば良いでしょうか? 個人的には下記のようにすれば良いのかと考えましたが、当然ダメでした・・・ NSString *panelNo= picture_panel.imageNamed; NSLog(@"%@",panelNo); 一度作成したUIImageの設定したimageの名称をNSStringで取るにはどうすれば良いでしょうか? よろしくおねがいします。
755 :
名称未設定 :2014/03/25(火) 00:13:48.08 ID:wDLnFOX30
>>751 UISegmentedControl単体じゃ無理だな。
UIButtonを3つ並べてtouchDown + touchUpInsideを併用とか。
或は自分でそういうコントロール作るか。
>>754 そりゃ無理。UIImage側ではファイル名は保持してないから。
自分でロードしたファイル名@"xxx.png"を保持しておけばいい。
756 :
名称未設定 :2014/03/25(火) 00:30:36.53 ID:wDLnFOX30
>>751 UISegmentedControlをサブクラス化してtouchesBeganをハックしちゃえ。
使い方はわかるべ?
@interface MySegCtrl : UISegmentedControl
@property (nonatomic, weak) ViewController *vc;
@property (nonatomic) SEL touchDownAction;
@end
@implementation MySegCtrl
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
[super touchesBegan:touches withEvent:event];
if ([_vc respondsToSelector:_action2]) {
[_vc performSelector:_action2 withObject:self afterDelay:0.0];
}
}
@end
757 :
名称未設定 :2014/03/25(火) 00:33:24.68 ID:wDLnFOX30
あ、_action2じゃなくて_touchDownActionだ。
758 :
名称未設定 :2014/03/25(火) 00:49:05.98 ID:Yk6xQU7h0
画像有りと無しのcellの再利用が混在しないようにIDを分けたらいい それか、最初に画像無しcellのseparatorInsetを保存しといて、毎回設定するとか
759 :
名称未設定 :2014/03/25(火) 09:14:42.47 ID:RBj6kBkX0
autolayoutを無効にすると問題ないのですが、有効にした状態で以下のようにすると self.myNavigationBar.topItem.titleView=self.mySearchBar; Auto Layout still required after executing -layoutSubviews. UINavigationBar's implementation of -layoutSubviews needs to call super. というエラーが出ます。 これなどうゆうことなのでしょうか?
760 :
名称未設定 :2014/03/25(火) 17:41:22.96 ID:aVUeO3DF0
>>753 早速やってみます。
ありがとうございました。
761 :
名称未設定 :2014/03/25(火) 19:34:30.88 ID:CCrGDdqs0
UITableViewのセルをタップすると セルがハイライトして別のviewコントローラに遷移する。 遷移した画面から戻るボタンで戻ると、セルのハイライトはちゃんと消えてる。 という処理の中で起きたバグについて質問 複数のセルをびたびた連打したりして遷移した時、 iOS7だと、2つのセルがハイライトした状態で遷移して 元の画面に戻っても1つのセルのハイライトが点いたまま という状態になってしまう iOS6だと特におこらないっぽい これ解消する方法ありますか?
762 :
名称未設定 :2014/03/25(火) 21:13:20.95 ID:B29nyzs90
>>761 テーブルビューのある遷移元の viewWillAppear: か viewDidApper: に
for( NSIndexPath *indexPath in [_tableView indexPathsForSelectedRows] )
[_tableView deselectRowAtIndexPath:indexPath animated:NOorYES];
って書いておく
763 :
名称未設定 :2014/03/25(火) 21:14:17.11 ID:B29nyzs90
>>762 ×テーブルビューのある遷移元の
○テーブルビューのある遷移元のViewControllerの
764 :
名称未設定 :2014/03/25(火) 22:39:51.31 ID:qsNyyIDR0
>>755 ありがとうございます。
ついでといっては何ですが、一つ質問させてください。
現状、ようやく下記テキストを一つ読んだ程度の初心者です。
ttp://www.sotechsha.co.jp/sp/1008/ 田舎なもので、本屋にプログラミング系の本がありません。アマゾンで購入を考えているのですが、
初心者から中級者に向けたおすすめのテキストはあるでしょうか?
スレ違いかもしれませんが、もしよろしければ教えてください。
765 :
名称未設定 :2014/03/25(火) 23:45:20.18 ID:CytYQWfu0
良本ならあるけど、中級向け上級向けってのはない気がする 良本は詳細Objective-C 2.0だと思ってるし、Blocks学びたければこの本とかオーディオならこの本とかそういうのしかないんじゃないかなぁ
766 :
名称未設定 :2014/03/26(水) 00:31:13.79 ID:1ECy2iQf0
>>764 >>6 にだいたい定番が。
公式日本語ドキュメントのGeneral分類の奴から目を通す
詳解Objective-CはMac用アプリ開発時代から
Objective-Cの詳しい解説書として唯一無二の評価を受けてた本なので
できれば押さえておきたい。(日本語ドキュメントの
「Objective-Cによるプログラミング」を読んでもよいが詳解の方がもっとわかりやすい)
あとはずっとMacOSXの方で定番の入門本を書いてた
アーロンヒレガスの一連の本(通称"ヒレガス本")が定番だったが
ピアソンが技術書撤退したので在庫限りなのでこだわらなくてもいいかも。
767 :
名称未設定 :2014/03/26(水) 01:56:16.35 ID:p/jDcBSf0
>>765 ,766
ありがとうございます。
生意気ながら発売から少々時間が経っているので少々不安でしたが、やはり詳解Objective-Cが良さそうですね。
購入を検討します。
768 :
名称未設定 :2014/03/26(水) 11:09:38.54 ID:sa1MMKYE0
UIWebViewにYoutubeをiFrameタグで埋め込むと動画のサムネイルの上に再生マークが表示されますが、この再生マークを非表示または小さくする方法ってありますか?
769 :
名称未設定 :2014/03/26(水) 11:24:29.05 ID:0t/x9byY0
>>762 レスありがとう
でもうまくいかなかったわ
2つ目のハイライトは、 indexPathsForSelectedRowsの中に含まれないらしい
消えなかった
他には、1つめのセルを押したら画面遷移完了するまで画面内全てタップ禁止
という処理をためしてみたけど、連打してたら普通にハイライト点いてしまった
770 :
名称未設定 :2014/03/26(水) 11:40:26.78 ID:duNM0Q0eI
オブジェクト指向について質問です いまシューティングゲーム作っているのですが、例えは、敵クラスなるものを作ってインスタンス化させるときに、どこでインスタンス化させるのが一般的なのでしょう? 敵クラスや自分で操作する機体クラス作って、ViewControler.mでインスタンス化して、バトル処理を行うイメージなのですが、
771 :
名称未設定 :2014/03/26(水) 11:44:57.66 ID:tSeLt/hf0
>>769 visibleCellsの全cellをselected = NO してはどうだろうか。
772 :
名称未設定 :2014/03/26(水) 11:51:56.50 ID:JyQ1lFZR0
>>769 再表示するしかないだろうな。[_tableView setNeedsDisplay]か[_tableView reload]
ちなみに連打ってどうやんの?できないんだけど
773 :
名称未設定 :2014/03/26(水) 12:03:16.25 ID:Vy8mmxwI0
>>770 メインループのとこか、それに類するGamePlayScreenみたいなのだろう。
ゲ製の初心者すれにこいよ
774 :
名称未設定 :2014/03/26(水) 12:12:29.93 ID:0t/x9byY0
>>771 >>772 レスありがとう
>>762 のタイミングで、selectedじゃなくて見えてるセル全体にhilighted=NOにしたらいけたわ
戻ってきた時にはちゃんとハイライト消えてる
selectedは反応しなかった
テーブルビューのリロードでも消えたけど、見えてるセルだけ処理したほうがいいよな
遷移前にセル2つ光ってしまうのもなおしたいんだけど、これは
cell.selectionStyle = UITableViewCellSelectionStyleNone とかの切り替えでいけないかな と思ってる
一回この方法でハイライト消そうとしたら、テーブルビューのセルのセパレートの線が消えてしまった
あと
>>772 のいう連打だけど、シミュレータじゃなく実機でやってるので普通にべちべち叩いてるだけだよ
775 :
名称未設定 :2014/03/26(水) 12:15:08.94 ID:JyQ1lFZR0
>>774 ふむ。ぺちで遷移してしまうので、ぺちぺちはできないなってことだったんだが
776 :
名称未設定 :2014/03/26(水) 12:33:42.39 ID:kwbHqcXT0
確かにどのアプリでもTableView使ってるやつは選択されたままになるね。
けどちょっと特殊な操作なので別に気にしなくていいような気もする。
>>775 連打でだめなら2本指でそれぞれ違うセルを微妙にタイミングずらしてタップすると再現できる
777 :
名称未設定 :2014/03/26(水) 12:41:02.22 ID:0t/x9byY0
>>775 俺の場合、遷移直前に2つめのセルが反応することがある
willSelectRowとかは通ってなくて、ハイライトだけ点く
iOS7でしか起きないっぽいのでOSの仕様かと思ってたんだけど
ちなみにiPadね iPhoneはわからん
>>776 他のアプリでもなるのね
直せそうではあるからとりあえず直すわ ありがとう
778 :
名称未設定 :2014/03/26(水) 13:28:56.16 ID:0t/x9byY0
ごめん
>>774 に追記
hilighted=NO だと新たにバグったわ
AのセルとFのセルを連打タップして、最初にハイライト点いたAのセルから遷移した時、
元の画面に戻ってまたA押すと、今度はCのハイライトが点いてAの遷移がはじまっちゃう
結局リロードしかない
[tableView reloadData]じゃなく
[tableView reloadRowsAtIndexPaths:[tableView indexPathsForVisibleRows]〜ってやれば
多分見えてる範囲だけリロードだと思うのでこれでいこうと思います
779 :
名称未設定 :2014/03/26(水) 15:25:50.57 ID:8AA3BtT20
まあ、reloadDataつうても全セルの高さと見えているセルの再取得と再表示だけなんだがな
780 :
名称未設定 :2014/03/26(水) 21:26:00.19 ID:OJgcKGjz0
EKEventをつかって読み出したカレンダーに登録してある予定を Labelを使って表示しようとしています。 予定の表題である「title」はそのまま表示できたのですが、 開始時刻の「startDate」と終了時刻の「endDate」を表示させようとすると型が違うとエラーになってしまいます。 そこで、この「startDate」と「endDate」をLabelを使って表示する方法を教えてください。 お願いします。
781 :
名称未設定 :2014/03/26(水) 22:10:11.30 ID:8forulbN0
リファレンス見てないから何ともいえないけど まさかNSDateをUILabelのtextに突っ込んでるんじゃないだろうね?
782 :
名称未設定 :2014/03/27(木) 01:25:18.65 ID:ZqBjU81w0
初歩的な質問ですみません。 メソッドの定義と実装について質問させてください。 クラスがMyClass.h&.m +viweController.h&.m +appDeligate.h&.m とあった場合を考えます。 viewController.mに#import"myClass.h"として、 itemが戻るメソッドを -(Myclass *)nextAction{ 実装処理 return 変数→(item)} という形で実装するとします。 そもそも、この変数のitemはMyClass.hで@property Myclass *item; と宣言すれば、viewController.mでもアクセスできるので (インスタンス変数だと@publicでしょうか) 上記のitemが戻るメソッドの実装は -(void)nextAction{ 実装処理 オブジェクト.item =返す値 } とする形でも一緒ではないでしょうか?
783 :
780 :2014/03/27(木) 01:27:32.74 ID:ND7McDu/0
>>780 の問題は解決しました。
お騒がせしました。
ところで、こうして取得した時間は日本時間ではないようです。
すみませんが、コレを補正して日本時間での予定を取得する方法を教えてください。
784 :
名称未設定 :2014/03/27(木) 06:04:31.30 ID:IfBmmI5J0
>>782 何が言いたいのかいまいち分からないけど、同じクラスのオブジェクトは複数作ることができて、
異なるオブジェクトのitemプロパティは異なる値を持つことができるってのは理解してる?
あと、大文字小文字の区別をちゃんとして欲しい。クラス名は大文字で始めること。
>>783 NSDateはtimezone情報を持ってないよ。
表示する時にNSDateFormatterでtimezoneを指定できるけど、デフォルトは現地時間のはず。
>>780 をどう「解決」したかを書くべきだと思うよ。それが間違ってる可能性があるから。
785 :
名称未設定 :2014/03/27(木) 11:32:35.26 ID:/09mqFx/0
教えてください。 カスタムクラスから、viewControllerのルートビュー(viewControllerからならself.viewで参照)へ参照するには、 どうすれば良いのでしょうか? カスタムクラスは import "viewController.h" -(void) test{ ViewController *viewCon=[[ViewController alloc] init]; viewCon.view.backgroundColor=[UIColor redColor]; } 自分の認識では、これでviewControllerのルートビューのbackgroundColorがredになると考えていたのですが...
786 :
名称未設定 :2014/03/27(木) 11:39:24.21 ID:ZqBjU81w0
>787 すみません。根本的にカスタムクラスの返り値(戻り値)について 理解不足かもしれません。 インスタンス変数で IBOutlet UILabel *sampleLabel; を作りました。 メソッドで -(UILabel *)changeLabel{ NSString *word =@”こんばんは”; [sampleLabel setText:word]; return word; } を作り、viewdidloadで [self changeLabel]; としました。 一応は変化はしてますが、何か違和感があるのです。根本的な勘違い があるのかもしれません。
787 :
名称未設定 :2014/03/27(木) 11:47:43.19 ID:olRon7iw0
>>785 特にそのコードだけでは問題が無い
UIColor *redColor = [UIColor redColor];
viewCon.view.backgroundColor=redColor;
NSLog(@"%p %@", redColor, redColor);
NSLog(@"%p %@", viewCon.view.backgroundColor, viewCon.view.backgroundColor);
ってしてみ
同じ値なら、そこは問題が無いがその後が問題
同じ値じゃないなら(たぶん、2個目のNSLogがnull)、そこは問題が無いがその前が問題。リソース/xibの設定がおかしいとか
788 :
名称未設定 :2014/03/27(木) 12:15:41.66 ID:olRon7iw0
>>786 何を質問しているのかわからないよ。何に対して違和感持っているのかも
return word; じゃなくて return sampleLabel;
もしくは
-(UILabel *)changeLabel じゃなくて -(NSString *)changeLabel
もしくは、呼び出し側 [self changeLabel] で返り値を使ってないんだから、
- (void)changeLabel で、return 無し
もしくは、そもそもそれだけだったら
[self changeLabel]
でなくて
sampleLabel.text=@”こんばんは”;
でええやん。と無理に違和感持ってみるとこうなる
789 :
名称未設定 :2014/03/27(木) 12:56:08.98 ID:Xdlrq51T0
790 :
名称未設定 :2014/03/27(木) 13:16:44.88 ID:JpPbmlan0
>>785 それは新たにViewControllerインスタンスを生成するコードで、
今既にあるviewControllerを操作するコードではないよ。
カスタムクラスにviewControllerの参照を渡さなきゃならない。
一番初歩的(?)なパターンとしてターゲットアクション/デリゲートを上にいくつか書いたけど、
例えば
>>756 なら、
MySegCtrl *mySegCtrl = [MySegCtrl alloc] initWith…..];
mySegCtrl.vc = self;
791 :
名称未設定 :2014/03/27(木) 13:31:20.14 ID:YGY+dQCr0
>>786 自分がいま何に何を命令しているのかすらわかってないようだし、Cの基本から始めたほうがいいと思うよ
792 :
名称未設定 :2014/03/27(木) 21:33:57.44 ID:KlG+x4Ut0
こまけーことはいいんだよ、動きゃいい。 と、思われてるに違いない。
793 :
名称未設定 :2014/03/27(木) 22:21:20.19 ID:u1iUBtLg0
あまり自分も大きなことは言えないので 答える側に回ることはほとんどないが ここでたまにかなり実装が進んでるっぽいアプリなのに 基礎がすっぽ抜けてるような質問が出てくるのみて 思わず「ふぁっ!?」声を上げることはある。 日本アルプス山中でサンダル履きの登山者を見たみたいな感じ。
794 :
名称未設定 :2014/03/27(木) 22:49:44.01 ID:BfsC4wle0
PHPやJavaでwebアプリを数年やって来て、社命でおまえちょっとやれよ、Java得意だしMacもってるから楽勝じゃん ってな具合で作った人に多そう。いや自分のことなんだけどさ。
795 :
名称未設定 :2014/03/28(金) 00:04:15.30 ID:E65d0khB0
>791 独学でがむしゃらにやってまして、約半年です。 結構、プログラミングには慣れてきましたけど色々知識が抜け落ちてる そんな気がします。 ViewControllerのインスタンスでIBOutlet *UILabel sampleLabel; を作成した場合、sampleLabelはUILabelのインスタンスでもありますね。 イメージですがViewController→UILabel→sampleLabel という感覚です。私の認識が正しいか分かりません。 C言語をもう少し、基礎から勉強しなおそうと思います。
796 :
名称未設定 :2014/03/28(金) 00:07:41.34 ID:SEGUaNaQ0
>>793 はい、私です。重要なところはプロの先輩に聞いて、よく分からんけど実装を繰り返し、三次元計算、当たり判定も公式聞いて実装。
こんな私でももうすぐリリースします。
リジェクトかなw
797 :
名称未設定 :2014/03/28(金) 00:29:00.83 ID:p1q9NDwT0
>ViewControllerのインスタンスでIBOutlet *UILabel sampleLabel; >を作成した場合、sampleLabelはUILabelのインスタンスでもありますね。 認識が怪しいのか日本語が怪しいのかこれもうわかんねぇな
798 :
名称未設定 :2014/03/28(金) 00:31:37.22 ID:vTZvtw900
>>782 では何をやりたいのか日本語的にわからんのですよ。
ViewControllerにsampleLabelを乗せて、それをどうしたいのか。
わからんので答えようがないのです。
799 :
名称未設定 :2014/03/28(金) 01:13:15.70 ID:xiYxbvWn0
>>787 ,790
レスありがとうございました。参考にさせていただきます。
800 :
名称未設定 :2014/03/28(金) 01:48:49.05 ID:xRQ7AeNm0
>>795 抜け落ちてるってレベルじゃなくてそもそも基礎が存在しないレベルのようだから、自分はできるとか思い込まないで学生のように1から積み上げてくべき
801 :
名称未設定 :2014/03/28(金) 02:20:00.18 ID:relCPoIq0
>>795 >イメージですがViewController→UILabel→sampleLabel
UILabelは型。intとかと同じと思っていてもいいけど、また変な方向にとも危惧せざるを得ないw
ViewController( *viewController)→sampleLabel
C言語理解できれば、viewController->_sampleLabel となるのも理解できるだろう。C言語でなくてもC++でもJavaでもいいと思うけど
802 :
名称未設定 :2014/03/28(金) 09:54:34.61 ID:V9C6Uj640
>>758 なるほど!気付きませんでした。ありがとうございます。
803 :
名称未設定 :2014/03/28(金) 09:55:51.66 ID:k6UNojAH0
質問なんですが、Hoge.m に @interface Hoge () { NSString *_fuga; } @end と、書くのと @interface Hoge () @property (copy) NSString *fuga; @end と書くのは、どちらも外から参照できないプライベートな変数という意味では同じだと思うんですが、プライベートな変数をあえて@propertyとして宣言する理由はなんなんでしょうか? プライベートな変数を@propertyとするか、単なる内部変数とするかの、使い分けはどうされてるんでしょうか? @propertyにすると、ゲッタ、セッタで挙動をオーバーライドできるのは知っていますが、そうでない場合も@propertで宣言しているソースを見受けるので、何か他にメリットがあるのかなと思いまして。
804 :
名称未設定 :2014/03/28(金) 10:36:22.29 ID:U3W+bnri0
>>803 無名カテゴリにプロパティとして書けばインスタンス変数ではなくプロパティとして扱える。ただそれだけでしょ。
オーバーライド? プロパティを使うメリットはオーバーライドできることじゃなくて、セッタ/ゲッタを通してアクセスできることだよ。
オーバーライドしないで使うことの方が多い。どうしてもセッタ/ゲッタの挙動をカスタムしたいときにオーバーライドするだけ。
特に文字列なんかはプロパティ使った方がいいだろ? なんのためにcopyつけてんだ。
805 :
名称未設定 :2014/03/28(金) 11:05:13.12 ID:k6UNojAH0
>>804 ありがとうございます。確かに文字列はcopy属性にするためにはプロパティ化しないといけないですね
strong属性でいい場合でも、セッタ/ゲッタで挙動をかえられるのでメンテナンス性を考慮してプロパティにして、
外部に公開しない(する予定もない)ちょっとしたフラグ的な変数とかはただのインスタンス変数にするって感じですかね
806 :
名称未設定 :2014/03/28(金) 16:36:55.68 ID:BxJFgh4h0
プログラミングの知識がほとんどないのですが、脱出ゲームアプリの開発にとても興味があり質問させて頂きたいです。 開発について調べたところ、画像に透明なスイッチを置いて、それをタップすることで次の画像を表示させていくという方法が基本的な流れだとありました この場合の質問をさせて頂きたいのですが、 例として、部屋のある一面を見た視野の画像の右端に、タップすると視野が90度移動した画面を表示するスイッチをつけます 右端をタップし、90度右に視野を移した画面にはアイテムAが置いてあり、それを取った場合、アイテムAの無くなった同じ画面を表示させます もう一度視野を90度左に移し元の画面に戻り、さらに、もう一度90度右に視野を回転させると、アイテムAがある画面になってしまいます。 これを回避する為には、アイテムAを取った時にどの様にしたらいいでしょうか? 元の画面からアイテムAがある画面へのリンクを作る時に、アイテムAがタップされ取得されたならそれがない画面を、まだタップされていないならある画面を表示させるといった流れで作っていくのでしょうか? 質問がわかりにくくなってしまい申し訳ありません、 CGアニメ関係の仕事をしており、CG技術に対しては少し知識がありますが、プログラミングにほぼ知識がないのでうまく質問できていないかもしれません。 少しずつモデリングや謎解きを作り、脱出ゲームに必要な画像ファイルは全てレンダリングが終わり完成した状態です。
807 :
名称未設定 :2014/03/28(金) 16:51:10.36 ID:vTZvtw900
>>806 「アイテムの無い背景」と「アイテムのみの画像」を重ねて表示するのが一般的ですかねえ。
アイテムを取ったかどうかはフラグで保持すればいいでしょう。
ただこれだと鏡や天板への写り込みもうまく描かなきゃなりませんね。
アイテムだけ影が無くてバレバレとかになっちゃ困りますよねw
いやマジメな話。
808 :
名称未設定 :2014/03/28(金) 17:04:13.39 ID:vTZvtw900
>>806 画像が全部できてるならその方法でいいでしょう。
アイテムを取ったら画像を入れ替えればいいんです。
そして BOOL itemA みたいなフラグをYESにしておけばいいんじゃないですか。
809 :
名称未設定 :2014/03/28(金) 17:25:07.23 ID:3JhIkpXO0
>>806 アイテムをとったかどうかは変数で覚えておく。
画面が切り替わったときには、その変数をみて、アイテムを描画するか否かを決める。
それだけだよ。
810 :
名称未設定 :2014/03/28(金) 18:05:10.46 ID:ZumwobyA0
スクロールビュー上にあるUIviewを掴んでドラッグさせて画面端へ行ったら スクロールビューをアニメーション(0.5[s])を使ってスクロールさせて画面切り替えを行うという処理 を書いてます。 以下、UIviewの状態変化に伴って実行されるプログラムです。上記のアニメーションをしているこの0.5sの間に 指を話してしまうと 以下の//Uiviewを離したときの処理が行われません。 どうしたいいのでしょうか - (void)view_Dragged:(UIPanGestureRecognizer *)sender{ switch (sender.state) { //uiviewをつかんだとき case UIGestureRecognizerStateBegan: //uiviewをドラッグ中 case UIGestureRecognizerStateChanged: //uiviewを離したとき case UIGestureRecognizerStateEnded: } } ちなみにこのUIviewには以下のジャスチャーをつけてます UIPanGestureRecognizer *pan =[[UIPanGestureRecognizer alloc]initWithTarget:self action:@selector(view_Dragged:)]; // ビューにジェスチャーを追加 [btn addGestureRecognizer:pan];
811 :
名称未設定 :2014/03/28(金) 18:30:07.64 ID:ZrpgjlT60
使ってるアニメーションによるけど、動いてる途中って掴めないんじゃないっけか 自分でCA系扱ってるかどうかがわからんからもうちょい詳しく
812 :
名称未設定 :2014/03/28(金) 18:45:20.71 ID:ZumwobyA0
CA系というのがよくわかりませんが アニメーションは以下のようにしてます -(void)TransitionAnimation:(UIView*)uiview frane:(CGRect)r setPosition:(CGPoint)point { [UIView beginAnimations:@"trans" context:NULL]; [UIView setAnimationDuration:0.5f]; [UIView setAnimationRepeatCount:0]; [uiview setFrame:r]; scrollview .contentOffset = point; [UIView commitAnimations]; }
813 :
名称未設定 :2014/03/28(金) 18:50:14.45 ID:BxJFgh4h0
>>807 回答ありがとうございます。
アイテムに対する鏡の映り込みや光源からの反射を考慮して、アイテムがない状態の背景と、アイテムがある状態の背景を作ってあるのですが
光源など計算された状態のアイテムがある背景の、アイテム周辺だけを切り取って使うことはできますか?
同じ座標に表示させないとズレてしまいますが、アイテム周辺以外は透明にしておけば解像度は変わらないので重ねて表示できますかね?
>>808 回答ありがとうございます。
まだうまくソースコードがかけないのですがやってみます。
アイテムAを取ったら画像を入れ替えられれば、今出来ている画像でなんとかできそうです。
>>809 回答ありがとうございます。
アイテムAを取ったら1、アイテムAを取っていなかったら0みたいな感じでしょうか、
私の今の画像は全ての同じサイズで出力してしまったので、もしそうするならばアイテムのみの画像と、アイテムのない画像を用意するということですよね
そうしたほうが一般的で簡潔に書けそうな気がしますね、
814 :
名称未設定 :2014/03/28(金) 19:31:01.64 ID:k6UNojAH0
すみません、また質問なんですが、 アドレス帳からとってきた名前(フルネーム)を表示したいんですが、アドレス帳には姓、名がそれぞれ登録してあります。 日本であれば「姓 + 名」で出力すればいいと思うんですが、アメリカとかだと、「名 + 姓」ですよね。 どっちを先にするかという情報は、APIでとってこれるもんなのでしょうか? いろいろ探してみたんですが 情報が見つけられなくて、もし分かる人がいましたら教えてください。
815 :
名称未設定 :2014/03/28(金) 19:38:23.06 ID:vTZvtw900
>>813 ああやっぱり結構フォトリアルな画像なんだね。
じゃあ画像をまるまる交換する方でやって、それでもしメモリ食い過ぎとか問題になるようなら、
部分だけサイズ合わせて重ねて表示するプランBで。
入れ替えるのは単純に、UIImageViewのimageプロパティを入れ替えればいいよ。
816 :
名称未設定 :2014/03/28(金) 19:53:34.94 ID:k6UNojAH0
>>814 です。自己解決しました。
ABPersonCompositeNameFormat
っていうのがありました。
817 :
名称未設定 :2014/03/28(金) 21:26:41.24 ID:gJrl5LZc0
はじめて質問します。初心者です、よろしくおねがいします。 自作クラスで作ったインスタンスをNSMutableArray配列に格納しています。 しかし、その配列をNSUserDefaultで保存するタイミングでにエラーが出てクラッシュします。 *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSUserDefaults setObject:forKey:]: attempt to insert non-property list object (… となっています。 どういうことなのかわからずにおります。よろしければ教えて下さい。
818 :
名称未設定 :2014/03/28(金) 21:29:25.91 ID:3hDnmHsj0
819 :
名称未設定 :2014/03/28(金) 21:46:02.72 ID:hb8u2gdW0
820 :
名称未設定 :2014/03/28(金) 22:32:40.60 ID:LUr4Txnf0
ディレクトリのリストを取得する方法はないでしょうか? [目的] ファイルの移動先リストの表示。 やてみたけどうまく行かなかった自分のコード。ディレクトリだけでなくファイルも取得してしまう。 // サブディレクトリの取得 NSError *erroDir; NSArray *mySubDirs = [fm subpathsOfDirectoryAtPath:_path error:&erroDir]; NSLog(@"mySubDirs:%@ \n",mySubDirs); これで取得した配列を1個づつファイルかディレクトリかチェックするのは非効率的すぎて、数が増えると速度的に厳しいとおもいます。 iPhone の safari のお気に入りの移動とかはどうやって、移動先を取得してるのでしょうか? 2000個以上ブックマークがあってもサクサク動いてます。
821 :
名称未設定 :2014/03/28(金) 22:42:51.07 ID:kXT3g3dS0
822 :
名称未設定 :2014/03/28(金) 23:34:44.85 ID:AeynQJMA0
Safariのブックマークは多分CoreDataだろ、ファイルシステムじゃなくて
823 :
名称未設定 :2014/03/29(土) 00:10:55.06 ID:bYi/yBxf0
>>818 WiFiの細かいことに関することは全てUndocumented APIなので無理です
824 :
名称未設定 :2014/03/29(土) 00:19:37.81 ID:ddJ1WS3f0
825 :
名称未設定 :2014/03/29(土) 00:25:12.83 ID:qp9nIkxG0
>>819 ありがとうございます!!それで解決しました
826 :
名称未設定 :2014/03/29(土) 00:26:52.63 ID:N7uiYVtl0
>>823 レスありがとうございます。
パスワードの入力まではいかなくとも、スキャン結果(ネットワーク名と電波強度)の表示すらNGなのでしょうか?
827 :
名称未設定 :2014/03/29(土) 00:27:29.56 ID:fMDWlwl30
2000程度の辞書・配列なデータだったら、 NSMutableArray・NSMutableDictionaryで作ってシリアライズするだけで十分な気がするけどね。
828 :
名称未設定 :2014/03/29(土) 00:41:28.13 ID:bYi/yBxf0
>>826 スキャンすることがUndocumented APIです
昔話的にはUndocumented APIでも許されていたが、超Private APIになり、また、Undocumented API使うこと自体を許さなくなりました。図のようなアプリはiOSにもいくつかあったが、そのときに一斉に無くなりましたとさ
829 :
名称未設定 :2014/03/29(土) 00:50:22.77 ID:N7uiYVtl0
>>828 詳しくご教授頂きありがとうございました。
830 :
名称未設定 :2014/03/29(土) 00:55:17.77 ID:7DylAqGQ0
itunes connectのiAd表示数の確認できる場所変わった?
831 :
名称未設定 :2014/03/29(土) 00:56:30.70 ID:IeuiYxu90
>>821 >>827 回答ありがとうございます。
fts はとっつきにくくてよくわからなかったので、勉強は後回しにして、可変辞書で移動先フォルダのリストを持つことにしました。
フォルダ追加時に、可変辞書にも書き込んどく感じです。
実装すぐに終わりそうです。
832 :
名称未設定 :2014/03/29(土) 01:22:47.81 ID:y079AmWH0
>>824 ありがとうございます。
これでがんばってみます
833 :
名称未設定 :2014/03/29(土) 16:14:10.69 ID:cbbdtowx0
>>815 ありがとうございます。
CGの方は法線マップやAOを重ねてバンプ感を出したり、ランプの映り込みがあるので
単純なアイテムの移動だと、指摘された様に影や映り込みができないことに気づきました。
アイテムだけ浮いてしまう感じですね
画像ファイルはなんとか一枚を150KB程度のものにし、全部で70枚ほどあるので11MBぐらいになりますが、一般的でしょうか?
834 :
名称未設定 :2014/03/29(土) 18:46:46.97 ID:nbKTrcGp0
835 :
名称未設定 :2014/03/29(土) 19:13:56.52 ID:HW5yA0P70
>>833 無意味なアイテムをいっぱい用意するのも手。w
フォローが無いとクソゲになるけど。
836 :
名称未設定 :2014/03/29(土) 19:44:54.07 ID:cbbdtowx0
>>835 無意味なアイテムがあると隠せるので制作側は楽ですね
やる側だとそれこそただわかりにくいだけでつまらないって評価になりそうで
うまくヒントになるようなものを置いたりしたいです
何もなさすぎても殺風景で寂しい感じですよね
837 :
名称未設定 :2014/03/29(土) 20:23:22.33 ID:fMDWlwl30
XCTestについて質問です。 スキームで〜Testを選択・実行すると、AppDelegate の didFinishLaunchingWithOptions が先行して実行されるようなんですが これは仕様上どうしよーもないのですかね?このメソッド内で使うクラスのテストケース書いたのですが… didFinishLaunchingWithOptions を実行させずにテストケース群を実行させたいです。
838 :
名称未設定 :2014/03/29(土) 21:29:14.21 ID:y079AmWH0
Imagepickerでデータフォルダから画像ファイルを読み込むとアプリが おちるんですが解決策はありますか? 落ちなくても数秒画面が止まります
839 :
名称未設定 :2014/03/29(土) 21:43:25.67 ID:gxrHvqXi0
>>838 初回のみ落ちるよね。
回避方法もあるけど、そのうちapple様が修正するのでは。
840 :
名称未設定 :2014/03/29(土) 22:46:44.63 ID:ddJ1WS3f0
>>837 スキームから実行じゃなくて、Product>Test (?U)じゃないの?
841 :
名称未設定 :2014/03/30(日) 00:59:43.19 ID:0goL2iys0
Safariのリーダー機能みたいにウェブページの無駄を省いて表示したいんだけれどもなんかそういったライブラリ、もしくは方法はないでしょうか
842 :
名称未設定 :2014/03/30(日) 01:11:42.48 ID:1yJM9pjB0
構成プロファイルのインストールの有無やインストール日時等の取得は出来ますか? リファレンス等を見てみたのですが特に記述が無かったように思うのですがご教授いただけないでしょうか。
843 :
名称未設定 :2014/03/30(日) 01:12:02.03 ID:qeXMlXrc0
>>834 取得したUIButtonは最初の 赤い Round Rect の Play ではなく、一度再生開始した後に出る 丸い Play (そのページでの画像のと同じ)
buttonのhiddenの状態がそうだし、丸い Play 表示後はsendActionsForControlEventsが効く
最初に 赤い Round Rect の Play が出るように仕様が変わったのかなんなのかは知らない
844 :
名称未設定 :2014/03/30(日) 01:22:42.68 ID:fTF3K0VL0
アプリ内課金のお薦めライブラリ教えてくれませんか?
845 :
名称未設定 :2014/03/30(日) 02:01:26.24 ID:ly2Fiprw0
macでタッチパネルのテストができたら便利だと思い、win8入れたのですが、エアのタッチパネルがが動きません。 初期不良のようなのでアップルストアで交換できますでしょうか?
846 :
名称未設定 :2014/03/30(日) 02:11:42.49 ID:XOJQDEbH0
初心者です。独り言です。突っ込んでくれたら大喜びします。 メソッドは二種類あって、プログラムで勝手に呼び出されるもの。 (ViewDidLoad,prepareForSegueなど) 自分で実装するものです。 メソッドで 自分で実装したものは基本的には 勝手に呼び出されません。 -(IBACtion)tapButton:(id)sender{ 処理} ただし、上のようなIB上で起きるイベントではボタンを押すと自動的に メソッドが実行されます。 最初はこのsenderなるものがさっぱり分かりませんでした。 このsenderは「IB上のボタンを押す」という引数であり、 それが引き金になり、このメソッドは実行されるんだと感じました。
847 :
名称未設定 :2014/03/30(日) 02:44:03.54 ID:Y6w4vtpW0
>>846 ちょっと表現がおかしい
ViewDidLoadを自分で(オーバーライドして)
実装するとOS側が呼んでくれる
-(IBACtion)tapButton:(id)sender{
をただ書いただけでは自動的には呼ばれない
IBを使ってつなげた場合やIBを使わないで
自前コードでセレクターとして設定した場合
OS側で呼んでくれることを依頼する形になる。
senderは押されたボタンが入ってくる。
ボタン作成時のタグを取得したり
上記メソッドは複数ボタンに割り当て可能なので
どのボタンが押されたか呼ばれた側で判定する
848 :
名称未設定 :2014/03/30(日) 02:45:11.30 ID:ilSUFhDg0
メソッドを二種類に分けるなら、 ・自分しか存在を知らないもの ・他人にも存在が知られているもの でしょう。 自分しか存在を知らないものは、当然OSやUIから呼び出されることはありません。 しかし、自分のプログラム内でメソッドの存在を教えてやれば別です。 > -(IBAction)tapButton:(id)sender{ > 処理 > } このメソッドは、IBを使って、あるボタンに対してそれを押したときに処理出来るメソッドとして教えてあげたから、ボタンはメソッドを実行します。 senderはそのボタン自身です。 ボタンは、ユーザに押されたときにIBで教えられたメソッドを自分自身を引数に渡して実行します。
849 :
名称未設定 :2014/03/30(日) 03:01:51.55 ID:11iYTZXT0
-(IBAction)tapButton:(id)sender{ 処理 } IBAction はストーリーボード用の目印で、ビルド後はvoidに書き変わる。 SBで配置したコントロールに線を繋げるための目印。 senderは線を繋げたコントロールのこと。senderとはメソッドの呼び出し元。 [viewController tapButton:self]; ←超簡単に言えばこうやって呼んでる。
850 :
名称未設定 :2014/03/30(日) 06:07:39.34 ID:2oIbmAe20
海外のアイコン検索サイトを利用して アイコン素材を用いてます。 クリエイトコモンズ?使われている素材なんですが アプリで利用した場合ってどこに著作者の名前とか書くべき?
851 :
名称未設定 :2014/03/30(日) 12:53:32.03 ID:WAmbVD5H0
>>840 xcodeで新規にプロジェクトを作って(コマンド-Uなどでも)試してみましたが、
AppDelegate の didFinishLaunchingWithOptions は呼ばれるぽいですね、
まぁ、フラグ建てるなどして管理します
852 :
名称未設定 :2014/03/30(日) 13:02:48.54 ID:+pxv9JWq0
>>850 ひとつビューコントローラを追加してそこに書いておけばいいよ
853 :
名称未設定 :2014/03/30(日) 13:05:53.18 ID:qeXMlXrc0
854 :
名称未設定 :2014/03/30(日) 14:39:38.05 ID:cd/L5NZ00
nend単体からAdmobメディエーションに変えたのですが nendのときにあったような画面遷移時pauseでバックグラウンドに行った画面の 広告リクエストを止めるというのは出来ないのでしょうか? 広告の貼ってある画面を3画面遷移したら、 3画面分全部、定期的に広告リクエストが発生しているのですが
855 :
名称未設定 :2014/03/30(日) 20:10:23.39 ID:dMx+TNxz0
教えていただけたら嬉しいです。 ひとつめのViewControllerで、AVAudioPlayerでbgmを鳴らしたまま、他の画面にmodal遷移しています。 次のViewControllerにうつったとき、そこからbgmを止めるにはどうしたらいいのでしょうか??
856 :
名称未設定 :2014/03/30(日) 20:29:35.80 ID:nRF/IptE0
>>855 ViewController.m(& .h)
- (void)stopBGM
NextViewController.m
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
if( [self.presentingViewController respondsToSelector:@selector(stopBGM)]] )
[self.presentingViewController performSelector:@selector(stopBGM)];
}
次のViewControllerからまた次のViewControllerへ行って戻ってきた時にもやってしまうが、まあ、既に止めているのを止めようとしているだけだから実害は無いだろう
857 :
名称未設定 :2014/03/30(日) 20:31:49.53 ID:11iYTZXT0
>>855 あとは、AVAudioPlayerをAppDelegateのプロパティにすればいい。
858 :
名称未設定 :2014/03/30(日) 20:40:58.07 ID:nRF/IptE0
>>855 ViewController.m
- (void)viewDidDisappear:(BOOL)animated
で、止めるでいいだけのよう。遷移先のAppearと遷移元のDisapperの順番を気にしたことが無かったが、
viewWillDisappear in ViewController
viewWillAppear in NextViewController
viewDidAppear in NextViewController
viewDidDisappear in ViewControlle
と、美しく理にかなっているのだった。後に仕様が変更されることは無いだろう、たぶん
859 :
名称未設定 :2014/03/30(日) 22:17:42.16 ID:GBqSXwlY0
BGM関係はshered化するな 音も映像もLeaksでリークしてるしな
860 :
名称未設定 :2014/03/31(月) 09:08:58.39 ID:oYZi19lz0
本当の初心者ですが、読んでいただければ… いくら調べてもできなくて… Tab barのアイコンなんですけど、 あれをカスタムで任意の画像にしたいんです。 けど、フリー素材みつけてDLまではできたんですが、そこから先がどうやっても黒の正方形になってしまってできません… どうすればいいのでしょうか? 勉強不足で申し訳ありません… 一週間ほどずっと悩んでいて… どなたか、よろしくお願いします…
861 :
名称未設定 :2014/03/31(月) 09:26:35.96 ID:lO46okGP0
>>860 まず、TabBarに使う場合は、二色の画像に変換しないと。
862 :
名称未設定 :2014/03/31(月) 10:10:27.08 ID:AVozmGx+0
一週間も悩むなら2chなんかで質問するよりstackoverflowかデベロッパーフォーラムで質問するか、デベロッパープログラムのチケットを使ったほうがいいぞ
863 :
名称未設定 :2014/03/31(月) 10:30:34.38 ID:0iI3dcGq0
>>860 Tab bar や Tool bar のアイコンは アルファ しか意味が無いよ。アルファは普通の画像は白塗りつぶしなだけなので、黒の正方形にしかならない
アルファ編集できる画像編集アプリで、RGBからアルファにコピればなんとなく目的の画像を得ることができる。RGBは消してしまってもいい(白or黒の塗りつぶし)
864 :
名称未設定 :2014/03/31(月) 10:36:37.70 ID:0iI3dcGq0
>>863 アルファ=アルファチャンネル、アルファマスク。画像ファイルのね
865 :
名称未設定 :2014/03/31(月) 10:54:56.45 ID:6tFq+EPi0
866 :
名称未設定 :2014/03/31(月) 13:08:09.15 ID:oYZi19lz0
867 :
名称未設定 :2014/04/01(火) 03:39:12.08 ID:A8Ia72SV0
あるNSString文字列が、あるフォーマット形式とマッチしているかどうか判定するにはどうすればいいのでしょうか 以下のプログラムは、Bの行のTEXTを用いてUIDatePickerの値を初期化をしています。 このTEXTが、Aの行のフォーマット形式にマッチしているか判定したいです。 例えば TEXTが@"2014/04/01" のときはA行のフォーマットに等しい。 TEXTが@"四月四日" のときは等しくない こういった具合に判定を行いたいですがどのようにすればいいかわかりません。 UIDatePicker *dp = [[UIDatePicker alloc] initWithFrame:CGRectMake(0, 250, 320, screenHeight - 250)]; //途中略 NSString *dateFormat = @"yyyy/mm/dd"; ・・・・A NSDateFormatter *dateFormater = [[NSDateFormatter alloc] init]; [dateFormater setDateFormat:dateFormat]; NSDate *date = [dateFormater dateFromString:TEXT];・・・・B [dp setDate:date];
868 :
名称未設定 :2014/04/01(火) 03:57:22.15 ID:PvmPxThy0
正規表現使ったら ^(\d{4})\/(\d{2})\/(\d{2})$ これはかなり雑な例だけど
869 :
名称未設定 :2014/04/01(火) 04:13:13.40 ID:NYz8iLjj0
870 :
名称未設定 :2014/04/01(火) 04:20:30.37 ID:A8Ia72SV0
正規表現・・・ちょっと調べてみますw
871 :
名称未設定 :2014/04/01(火) 06:24:05.31 ID:A8Ia72SV0
これで一応はできたのですが、
>>868 の表現と違うのでやや不安が残ります。。
-(BOOL)checkFormat:(NSString*)text{
NSError *error = nil;
NSRegularExpression *regexp = [NSRegularExpression regularExpressionWithPattern:@"\\d{4}/\\d{2}/\\d{2}"
options:0
error:&error];
if (error != nil) NSLog(@"%@", error);
else
{
NSTextCheckingResult *match = [regexp firstMatchInString:text options:0 range:NSMakeRange(0, text.length)];
//フォーマットにマッチした個数
NSLog(@"%d", match.numberOfRanges);
//マッチした文字列
NSLog(@"%@", [text substringWithRange:[match rangeAtIndex:0]]);
if(match.numberOfRanges != 0) return YES;
else return NO;
}
return NO;
}
872 :
名称未設定 :2014/04/01(火) 09:06:53.75 ID:KGMVDQQN0
出来てるなら良いと思うけど、不安は何に対しての不安かなんて本人じゃないとわからないよ
873 :
名称未設定 :2014/04/01(火) 14:34:40.81 ID:dT8zwNIZ0
iOS向けのVoIPアプリを作りたいのですが、 適したVoIPサービスなどの名称が知りたいです。 どうかご教示ください。
874 :
名称未設定 :2014/04/01(火) 15:46:42.36 ID:n5E6XeLV0
875 :
名称未設定 :2014/04/01(火) 16:57:26.93 ID:KGMVDQQN0
876 :
名称未設定 :2014/04/01(火) 21:30:46.32 ID:dT8zwNIZ0
質問です。「Implicit declaration in valid in C99」のエラーが出てしまい、困っています。 おそらく構文のエラーだと思うのですが・・・・。 #ifdef USE_GUI if (!showNotification(call_id))←ここでエラー return; #endif 直し方について、どうかご教示よろしくお願いします。
877 :
名称未設定 :2014/04/01(火) 22:29:51.70 ID:ETigS59a0
>>876 Implicit declaration と invalid in C99 の間に具体的にこれってあるんじゃないの
878 :
名称未設定 :2014/04/01(火) 22:32:40.28 ID:ZAxUnCWF0
showNotification() を事前に宣言しとけばいんじゃね?
879 :
名称未設定 :2014/04/01(火) 22:40:08.90 ID:dT8zwNIZ0
880 :
名称未設定 :2014/04/01(火) 22:43:43.53 ID:ETigS59a0
チラ見では 宣言している gui.h をincludeしてないもよう #ifdef USE_GUI #include "gui.h" #endif としとけばいいんじゃね
881 :
名称未設定 :2014/04/01(火) 22:55:40.08 ID:sThFjlm80
急遽仕事でiPhoneやらなきゃならなくなって 自宅でもやるために中古マック買おうか考え中なのですが、 中古マックでもデベロッパ契約とかアップルストア登録?とかに 問題とかないですか? 新品買っとくべき?
882 :
名称未設定 :2014/04/01(火) 23:18:30.86 ID:dT8zwNIZ0
>>880 >>881 レスありがとうございます!!
なんとかエラーが消えました!!
でもまた別のエラーがあるので、
なんとかしてみたいと思います。
回答してくれた方々、どうもありがとうございました。
883 :
名称未設定 :2014/04/01(火) 23:20:22.69 ID:ETigS59a0
>>881 どんなハード持っているかなんてまったくもって関係無い
最低限 OSX 10.8 以上が動くMac買っとけばいいよ。いまのうちは
884 :
名称未設定 :2014/04/01(火) 23:22:51.93 ID:tT/AxWmO0
UIView同士をネットワークグラフ的に接続する事を試しています。 あるUIViewは、接続されたUIViewの配列をプロパティに持つようにしています。 接続されたUIViewの配列を、 @property (nonatomic, retain) NSMutableArray *neighbors; として宣言しているのですが、これは循環参照になってしまうのでしょうか? 1対1なら weak で宣言するのですが、配列内に入れる場合が分かりません。
885 :
名称未設定 :2014/04/01(火) 23:32:58.53 ID:ic2BFjOE0
メモリーに関して質問があります ARC、autoreleaseを使わない状態で ボタンを押すとUIImageViewのimageを切り替わるだけのアプリだとして ボタンがタップされた時に if (selectImageView.image) [imageView.image release]; UIImage *image = [[UIImage alloc] initWithContentsOfFile:imagePath]; imageView.image = image; [image release]; という処理を入れているのですが、 1回めの imageView.image = image; でBAD_ACCESSが発生します [imageView.image release]をしなければimageが開放されないという考えで release追加しました メモリーを開放しつつUIImageViewの入れ替え方法を教えてください
886 :
名称未設定 :2014/04/01(火) 23:35:19.37 ID:VIcVOPr50
>>881 予算によるけど、Macは中古と新品の価格差があまり無いから、新品買えるなら新品が良い。
中古を狙うのであれば、2010年以降のMacが良い。基本だけどメモリは積めるだけ積む。
core i5/i7機であれば開発するには困らないよ。
887 :
名称未設定 :2014/04/02(水) 00:16:15.92 ID:DK+Ta2R60
>>884 それだけだったら、なんとも言えない。てか、とりあえずならない
neighborsに入れるViewがneighborsを持っているそのViewをインスタンス変数に持っているの?持ってないでしょ?
循環になるかよーく考えてイメージしてみよう
888 :
名称未設定 :2014/04/02(水) 00:24:03.13 ID:DK+Ta2R60
>>885 オーナーシップを無視しているから
if (selectImageView.image) [imageView.image release];
imageView が image のオーナーシップを持っているのに、無関係なそのコード/クラス/インスタンスがリリースしているので
正しくは
if (selectImageView.image) imageView.image=nil;
新しくnilをセットしてもらうことにより、imageViewが現在のimageのインスタンスのリリース/オーナーシップの放棄を行なう
そもそも、すぐに
imageView.image = image;
するんだったら、
if (selectImageView.image) imageView.image=nil;
はいらいない。nilを入れたように、新しいimageをセットしてもらうことにより、imageViewが既存のimageのインスタンスのリリース/オーナーシップの放棄を行なうから
オーナーシップの概念を最初から勉強し直そう
889 :
名称未設定 :2014/04/02(水) 00:31:30.24 ID:DK+Ta2R60
>>885 あ、あと
imageView.image = hoge;
は、単に変数に値を入れているのじゃないよ
[imageView setImage:hoge];
が、実際のコードだよ。で、propertyの属性がretainなので、setImage:の中で、新しいUIImageインスタンスのretain/既存のUIImageインスタンスのreleaseが行なわれている
890 :
名称未設定 :2014/04/02(水) 02:08:08.91 ID:/J/zwRalI
>>887 すみません、説明不足でした。
たとえば、A,BのUIViewだけがある状態ですと、
A.neighborsにはBのポインタが、B.neighborsにはAのポインタが入ってしまっています。
AがB、BがAを強参照していると循環参照になりますが、
A->A.neighbors->B->B.neighbors->Aの場合はどうなのか分からず、かつ回避方法も分からないです。
891 :
名称未設定 :2014/04/02(水) 02:25:57.37 ID:DCoTnrNs0
>>890 ヒントだけやろう。その場合の有向グラフの矢印は二本。
あとは自分で考える事。
892 :
名称未設定 :2014/04/02(水) 02:27:06.18 ID:DK+Ta2R60
>>890 >A.neighborsにはBのポインタが、B.neighborsにはAのポインタが入ってしまっています
なるほど。循環参照の何が悪いのか理解してみよう。循環参照は絶対悪じゃないよ
入れるのはあるメソッド/トリガーによってだろうけど、出す/削除するもトリガーがあるんじゃないの?
AまたはBが消えるときってわからないの?わかれば問題無い。わからなければ、わかるようになる方法を考えてみたら?
極端にだと、それらのViewを(暗黙的にも)管理すべきViewControllerがたぶんあるだろうから、それのdeallocででも 全ての view の neighbors に nil を突っ込むか、[neighbors removeAllObjects] でもしてやれば、循環参照は一気に解消されるだろう
循環参照が問題なのは、外部的要因が発生しないと解消されないでメモリに残るってだけ。逆に積極的に循環を切ってやれば循環参照になっていようが関係無いってこと
893 :
名称未設定 :2014/04/02(水) 02:42:14.93 ID:DK+Ta2R60
>>890 どーしても一時的にでも循環参照になるのが嫌だったら、
@interface WeakedView : NSObject
@property (weak,readonly) UIVIew *view;
- (id)initWithView:(UIView *)view;
@end
@implementation WeakedView
- (id) initWithView:(UIView *)view
{
if((self = [super init)) != nil )
self.view = view;
return self;
}
@end
としてーの、
[view. neighbors addObject:[[WeakedView alloc] initWithView:anotherView]];
とするかなと思い付き
894 :
名称未設定 :2014/04/02(水) 02:43:00.56 ID:/J/zwRalI
>>891 ちょっとしか考えてないのに申し訳ないですが、
矢印が戻ってきて循環参照に思えて仕方ないです。。
>>892 なるほど、詳しい説明ありがとうございます。
管理もとのUIViewCobtrollerのViewDidDisappearですべてのUIViewを取り除いていたのですが、
まず全てのUIViewのneighborsにnilを入れないと解放されない危険性がありそうですね。
895 :
名称未設定 :2014/04/02(水) 02:54:02.09 ID:DK+Ta2R60
>>894 >管理もとのUIViewCobtrollerのViewDidDisappearですべてのUIViewを取り除いていたのです
おお、削除するあなたのコードがあるんのね。じゃ、そこでついでにneighborsにnilってすればいいだけのよーな
しない今は(?)循環ってるのは解放されていないだろうねえ
896 :
名称未設定 :2014/04/02(水) 03:02:21.58 ID:/J/zwRalI
>>893 コードまでありがとうございます。
これなら循環参照にならないですね。
とても勉強になります。
897 :
名称未設定 :2014/04/02(水) 03:07:09.75 ID:/J/zwRalI
>>895 なんか入れ違いですみまけんを
まさにnilを入れれば解決しそうです。
メモリプレッシャーで落ちることがあったのですが、これで直りそうです。
898 :
名称未設定 :2014/04/02(水) 08:37:16.84 ID:5Dtb22Fg0
そもそもViewに構造関係持たせてるのが設計おかしいだろ Modelでやれ
899 :
名称未設定 :2014/04/02(水) 09:39:09.26 ID:hd6AYr0g0
ストーリーボードにあるコレクションビューのセルにデータを設定できないのでしょうか? registerClass:[myclass class] forCellWithReuseIdentifier: 一手間かけてこのメソッドでセルの登録をすればうまくいくと思うのですが、(最初にいじったサンプルはそうなってた) ストーリーボードで作ったセルを活用したいのです。 -(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{ UICollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"collectionCell" forIndexPath:indexPath]; // ここに赤い警告。そんなプロパティありません // セルの登録がされてない。登録用カスタムセルクラス作るのが必要? cell.textview.text=[NSString stringWithFormat:@"ラベル%ld",(long)indexPath.row]; // タグだとなぜかアクセスできる UIImageView *image = (UIImageView *)[cell viewWithTag:1]; image.backgroundColor = [UIColor grayColor]; return cell; }
900 :
名称未設定 :2014/04/02(水) 09:52:03.05 ID:d+Vsu2/80
webviewで履歴で消すにはどうすればいいでしょうか 以下のようにしても履歴が残ってしまいます [[NSURLCache sharedURLCache] removeAllCachedResponses]; 履歴を消した後goback、gofowardができないようにしたいです
901 :
名称未設定 :2014/04/02(水) 09:52:06.47 ID:5Dtb22Fg0
>>899 cellをmyclassにキャストしろ
902 :
名称未設定 :2014/04/02(水) 13:49:39.66 ID:BRg7erak0
>>899 テキストビューは存在してるけどクラスは標準のcellのままなのでプロパティではアクセスできずにタグでアクセスすることになる。
cellのサブクラスを作成して、ストーリーボード上でcellのクラスを設定し、アウトレットも設定すればいい。
HogeCell *cell = (HogeCell*)[collectionView dequeueReusableCellWithReuseIdentifier:@"collectionCell" forIndexPath:indexPath];
としておけば、cell.textViewにアクセスできるようになる。
903 :
名称未設定 :2014/04/02(水) 16:57:45.98 ID:zmhWpSdr0
プロパティの宣言で @property (nonatomic, readonly, copy) NSString *title; readonlyなのに、copyを付けるってどういう意味があるんでしょうか?
904 :
名称未設定 :2014/04/02(水) 17:05:14.61 ID:dg2g175t0
copyでもreadonlyなければ値は変えられるから
905 :
名称未設定 :2014/04/02(水) 17:25:26.99 ID:zmhWpSdr0
>>904 ありがとうございます。
でも、readonlyだけでよくないですか?
readonlyってことはセッターが無いってことだから、copyは不要じゃないですか?
copyがついてる意味がわかりません。
906 :
名称未設定 :2014/04/02(水) 17:41:42.76 ID:dg2g175t0
んーと、そのtitleってのを違うクラスで参照し、titleがあるクラス内でtitleを変更した際、 参照したオブジェクト側も変わってしまうのがイヤだからcopyつけておく 解りにくくてあれだけど
907 :
名称未設定 :2014/04/02(水) 18:13:51.56 ID:zmhWpSdr0
>>906 よくわからないのですが、copyはゲッターには関係無いので
copyがあっても、外部からtitleを参照するときにcopyされないですよね?
@interface MyObject : NSObject
@property (nonatomic, readonly, copy) NSString *title;
@end
MyObject *obj = [[MyObject alloc] init];
NSString *b = obj.title; // copyはされない
NSString *c = [obj.title copy]; // copyしたければ明示的に
copyが有効なのはセッターだけだと認識してますが、間違っていますか?
908 :
名称未設定 :2014/04/02(水) 18:28:27.80 ID:dg2g175t0
あ、そだね、自分の認識違ってたゴメンw
909 :
名称未設定 :2014/04/02(水) 18:42:51.71 ID:zmhWpSdr0
自己解決しました。
910 :
名称未設定 :2014/04/02(水) 20:19:55.11 ID:kIKwYQe90
質問です。。。 ビデオ通話などがリアルタイムに出来るSIPやVoIPライブラリでXcode5でarmv7sでも使えるものありますか・・・? PJSIPはビルド出来ませんでした。 iDoubsはiPhone4Sでビルドは出来ましたが、iPhone5に対応してないようです・・・。 出来ればSIPの技術使ったものがいいです。 ビデオチャットなどのデータやカスタムデータががリアルタイムに送受信出来れば、SIPじゃなくてもいいです。 何かライブラリがあれば教えて下さい。
911 :
名称未設定 :2014/04/02(水) 22:11:57.10 ID:LdJ9yewR0
>>888 >>889 詳しい回答ありがとうございます
オーナーシップ(所有権)の関係だったのですね
[imageView setImage:image];でメモリーが増大することもなくなりました
でおっしゃているとおり、imageView.image = nilを代入と考えていました
公式の高度なメモリ管理プログラミングガイド
にもしっかり書いてありました
・自分が所有していないオブジェクトの所有権を放棄することはできない
912 :
名称未設定 :2014/04/02(水) 23:04:09.35 ID:e/HGsyFo0
数日間悩んでいます。 プロパティでlabel_1を宣言しています。 int num[3]; int i; for(i = 0;i < 3; i++){ num[i]= 0; num[i]= 1; num[i]= 2; } self.label_1.text=[NSString stringwithFormat:@"%d",num[0]]; 以上を宣言した時、初期値からi++されずに、num[1]でもすべて 2が表示されてしまっています。
913 :
名称未設定 :2014/04/02(水) 23:13:10.79 ID:DK+Ta2R60
釣りだろうけど num[i]= 0; num[i]= 1; num[i]= 2; を消して num[i]= i;
914 :
名称未設定 :2014/04/02(水) 23:38:39.08 ID:e/HGsyFo0
すみません。 能力不足でした。考え直します。
915 :
名称未設定 :2014/04/02(水) 23:50:38.05 ID:Lj0aDsK20
>>914 NSTimerでインクリメントした数字をラベルに代入すればいいよ
916 :
名称未設定 :2014/04/03(木) 01:19:31.65 ID:BaVSOs240
>>901 >>902 回答ありがとうございます。
昨日丸一日ひたすらコレクションビューについて調べて、なんとか動くようになりました。
原因不明で動かず、ViewController から作りなおしたら動きました。
再利用識別子かクラス名、接続ミスかなんか基本的なとこがおかしかったみたい。
.xib のカスタムセルを登録。
[self.myCollectionView registerClass:[MYCollectionCell class] forCellWithReuseIdentifier:@"collectionCell"];
その後、取り出し
MYCollectionCell *cell = (MYCollectionCell *)[collectionView dequeueReusableCellWithReuseIdentifier:@"collectionCell" forIndexPath:indexPath];
cell.collectionTextView.text=@"testtesttesttesttesttesttesttesttesttest";
まだ、挙動がおかしいんですよね。
ストーリーボードのセルに xib のカスタムセルのサイズが引っ張られる。
でもこのストーリーボードのセルを消したらビルドが通らない。
917 :
名称未設定 :2014/04/03(木) 01:31:50.28 ID:a4wiQmEu0
>>916 ストーリーボード上のセルの設定でセル自体のサイズは決まる。
xibのセルでsubViewsの設置や配置が決まる。
918 :
名称未設定 :2014/04/03(木) 13:14:44.00 ID:GmWUoCLK0
UITableViewStyleGrouped を設定した時の UITableView について質問 角が丸くなってるセルをタップした時のハイライトが 四角いままではみ出るのって仕様? 見た目丸なのにタップしたときだけ四角いのが気になる [cell setClipsToBounds:NO] とか [cell.contentView setClipsToBounds:NO] でハイライトはみでないようにできないかと思ったけど変わらなかった
919 :
名称未設定 :2014/04/03(木) 13:30:16.85 ID:yant3Uae0
>>918 CALayerのmasksToBoundsでどう?
920 :
名称未設定 :2014/04/03(木) 14:49:54.15 ID:GmWUoCLK0
>>919 今やってできなかった
テストとして、幅が長いUILabelをcell.contentViewに置いて
clipsToBoundsとかmaskToBounds設定してみたけど、テキストすごいはみでてる
ラベルとかセルからはみでないようにする設定って普通できるよね?
俺のやりかたがなんか間違ってるかもしれない・・・
921 :
名称未設定 :2014/04/03(木) 14:59:27.65 ID:yant3Uae0
>>920 よく見たらNOに設定してるじゃん
YESだろ
922 :
名称未設定 :2014/04/03(木) 15:08:41.64 ID:BEl6Jr200
漫才スレはここですか?
923 :
名称未設定 :2014/04/03(木) 17:26:47.04 ID:tkgaLCDJ0
924 :
名称未設定 :2014/04/03(木) 18:25:11.13 ID:3Vdf5U760
iPhoneアプリを公開したいのですが、リリースするときはiPad用のスプラッシュ画像やアイコン画像も必要なのでしょうか?
925 :
名称未設定 :2014/04/03(木) 19:02:50.01 ID:vjN4ADLT0
iPhone用として出すなら必要ないです。
926 :
名称未設定 :2014/04/03(木) 19:44:40.90 ID:3Vdf5U760
>>925 わかりました。
ありがとうございます。
927 :
名称未設定 :2014/04/03(木) 19:47:57.42 ID:hb7+YJTP0
928 :
名称未設定 :2014/04/03(木) 21:30:21.63 ID:BaVSOs240
コレクションビューに苦戦中。 @property (weak, nonatomic) IBOutlet UICollectionView *myCollectionView; ストーリーボードのコレクションビューから線をひっぱって↑を .h に接続して、 ビルドすると画面が真っ暗になるのはなぜでしょうか? 接続しないと、セルが表示されるのが不思議です。 これにかぎらず、コレクションビューとストーリーボードの挙動がトリッキーに感じます。
929 :
名称未設定 :2014/04/03(木) 23:15:33.53 ID:a4wiQmEu0
>>928 collectionViewはデフォルトの背景色が黒。
接続しないと表示されるの意味が分からん。
挙動がおかしいとかトリッキーとか理解不足のお前の感想はどうでもいいから、質問を簡潔に分かりやすく書け。
930 :
名称未設定 :2014/04/04(金) 00:21:25.82 ID:pZTyw5kj0
こんばんわ。 以前このスレで教えていただいたことでカスタムクラスの定義で、現在のviewControllerをカスタムクラスで参照したい時、 --viewController-- //カスタムクラスをインスタンス化 custamClass *aaa=[]custamClass alloc] init]; //カスタムクラス内のinterface内でUIViewControlleの型でプロパティとして宣言したvcにselfを代入。 aaa.vc=self; これで、custamClass内でプロパティ_vcで自身で作成したviewControllerを参照できます。 UIView* bbb= _vc.view; で、viewControllerのルートビューが参照できます。 このように、カスタムクラス内でviewControllerを参照することのやり方を以前教えていただきました。 ここからが質問ですが、viewControllerで宣言したプロパティをカスタムクラスで参照したい時、 _vc.ccc; cccはviewControllerでプロパティ宣言されてるとします。このやり方では、参照できませんでした。 カスタムクラス内でviewController自身をプロパティにすると、そこからviewController内のプロパティを参照することはできないのでしょうか? 自分で見返しても、ものすごく分かりにくい文章かと思います。それでも意図をご理解してご教授頂ける方がいましたら是非教えてください。 よろしくお願いします。
931 :
名称未設定 :2014/04/04(金) 00:32:32.39 ID:7lqVF3sj0
>>930 CustomClass.mでViewController.hをインポートしてないから、
ViewControllerのcccが見えてない。
#import "ViewController.h"
932 :
名称未設定 :2014/04/04(金) 00:49:46.63 ID:7lqVF3sj0
>>930 もうひとつ。
@property (….) UIViewController *vc; を、@property (….) ViewController *vc; にしよう。
スーパークラスの型で宣言するとサブクラスのcccが使えない。(キャストすれば使える)
933 :
名称未設定 :2014/04/04(金) 00:52:20.10 ID:7lqVF3sj0
>>932 をやって「ViewControllerなんて知らんがな」と言われたら、
@class ViewController; を書いて、ViewControllerっていうクラスがある事をコンパイラに教えてあげよう。
934 :
名称未設定 :2014/04/04(金) 01:00:24.78 ID:vzP+xp020
>>930 インポートで解決するけど、CustomClassの方ににcccのプロパティを宣言しておいて
aaa.vc = self;
aaa.ccc = self.ccc;
としておいた方がいいかもしれない。お互いにインポートしあうようなクラス同士の関係はあんまりよろしくない。
「MVC、疎結合」あたりでググっていろいろ読んでおくことをオススメする。
935 :
名称未設定 :2014/04/04(金) 01:18:36.63 ID:7lqVF3sj0
お互いにimportする事態になってるのは、どちらも同じ階層のオブジェクトだから。 両方とも ViewController.h に宣言すれば、#import "ViewController.h" だけで解決するよ。
936 :
名称未設定 :2014/04/04(金) 01:39:55.50 ID:7lqVF3sj0
>>934 ああ、言ってる意味がわかったよ。
ViewControllerがカスタムクラスをインスタンス化して乗っけてる。
で、カスタムクラスからtarget-actionでviewControllerを呼んでると。
だがカスタムクラスではなぜかviewControllerのcccを取得する必要が出てるという事ね。
これはviewcontrollerがカスタムクラスにcccの値を教えてやるべきだね。
おっしゃるとおり、customClass.ccc = self.ccc;
937 :
名称未設定 :2014/04/04(金) 05:19:52.00 ID:RfMLg4Ou0
Appleにリジェクトされないやり方でTIUserDictionaryControllerにコードで遷移させるにはどうしたらいいのでしょうか
938 :
名称未設定 :2014/04/04(金) 10:07:10.43 ID:JYuNWqhb0
>>921 いやYESとNOとどっちもやってたんだよ
どっちやってもマスクかからんなと思いながら
939 :
名称未設定 :2014/04/04(金) 13:35:07.78 ID:lpQqN+rc0
二つのテキストフィールドがあって Aのテキストフィールド:キーボードを用いる Bのテキストフィールドキーボードは用いない(表示しない) としたいのですが Aを編集中のとき、Bのテキストフィールドの編集に移っても キーボードが消えません。 ただし、Aを編集中→Returnボタンをおすとキーボードは消せます。 どうしたらいいのでしょうか。 ちなみに以下の用に設定してBが編集が始まった場合にはキーボードが表示されないようにしています -(BOOL)textFieldShouldBeginEditing:(UITextField*)textField { if(Aのテキストフィールドが編集されたら) return NO else YES }
940 :
名称未設定 :2014/04/04(金) 14:25:03.30 ID:7lqVF3sj0
>>939 [A resignFirstResponder]; で消えないかい?
941 :
名称未設定 :2014/04/04(金) 16:05:21.83 ID:2jTaw+Me0
UITextViewについて質問なのですが、 ”文字がUITextViewの右端まできたら”という判定を取りたいのですが 方法はあるのでしょうか?
942 :
名称未設定 :2014/04/04(金) 16:38:59.41 ID:0LwcF7tL0
このAはグローバル変数?あるいはインスタンス変数ではなく
あるメソッド内で生成されたもので、名前を指定して
>>940 のように参照はできないので
//テキストフィールド編集終了後の呼び出される
-(void)textFieldDidEndEditing:(UITextField*)textField{
[textField resignFirstResponde]
}
としたのですがこれでも消えません
943 :
名称未設定 :2014/04/04(金) 17:12:54.28 ID:B7R5h9sM0
>>942 ちなみに
>Aを編集中のとき、Bのテキストフィールドの編集に移っても
って、移らないでしょ?
>Bのテキストフィールドキーボードは用いない(表示しない)
ってのが意味わからない。テキストフィールドキーボード使わないで何しようとしているのか
あまり仕様がわからないが、
-(BOOL)textFieldShouldBeginEditing:(UITextField*)textField
{
if(textFieldがAだったら) return YES;
for(UIView *view in textField.superview.subviews){
if([view isFirstResponder]){
[view resignFirstResponde];
break;
}
return NO;
}
じゃないのかな。textField.superview.subviewsでだけ探せばいいのか、違うレベルにあるのかはまあ適当に
944 :
名称未設定 :2014/04/04(金) 17:23:40.70 ID:B7R5h9sM0
>>942 まあtagでAとかBとか判断するんだろうなと思ってたけど、それならループらなくても
[textField.superview viewWithTag:Aのtag値];
で、参照できるなと気付いた
945 :
名称未設定 :2014/04/04(金) 17:51:09.44 ID:pZTyw5kj0
930です。遅くなりましたがありがとうございます。
>>931 すごく早い回答ありがとうございます。
一連の説明どおり行ったら、あっさりできました。本当にありがとうございます。
>>934 教えていただいた方法のほうが、よさそうですね。仰る通り、ググって勉強してきます。
ありがとうございます。
946 :
名称未設定 :2014/04/04(金) 18:51:08.41 ID:id6tZqgA0
947 :
名称未設定 :2014/04/04(金) 19:06:26.41 ID:F2XPyq8g0
Appleはなんの目的で罠を仕掛けるんでしょうか? Appleにとってなんのメリットがあるのでしょうか? 気になって夜も眠れません
948 :
名称未設定 :2014/04/04(金) 19:24:42.96 ID:id6tZqgA0
>>947 開発長期化によるデベロッパ登録料の搾取と増加。
これもありますが、一番の目的は苦しんでいる開発者をあざ笑うことでしょうね。
他人の不幸はりんごの蜜の味です。
949 :
名称未設定 :2014/04/04(金) 20:19:07.40 ID:F2XPyq8g0
>>948 開発が長期化するとデベロッパの負担が重くなりApple離れを促進してAppleにとってもデメリットがあると思うのてすが、
そのデメリットを天秤にかけても他人の不幸を味わうことの方がAppleにとって魅力的ということでしょうか
ありがとうございました
950 :
名称未設定 :2014/04/04(金) 20:46:39.86 ID:75EYa/8S0
951 :
名称未設定 :2014/04/04(金) 22:26:26.55 ID:F2XPyq8g0
どーでもいい
952 :
名称未設定 :2014/04/04(金) 22:33:08.65 ID:7lqVF3sj0
>>941 UITextViewDelegateメソッドのtextViewDidChange: を次のようにすれば、カーソルのCGRectがわかる。
だが次に入力される文字が例えば "i" なのか "M" なのかによって、これが「行末の文字」かどうかは変わるよねえ。
次の入力で強制的に改行するようにすればできるけど。
- (CGFloat)textViewDidChange:(UITextView *)textView {
UITextPosition *pos = textView.endOfDocument;
CGRect cursorRect = [textView caretRectForPosition:pos];
}
他にも文字の座標を知る方法はあるけど、同じ事が言えるかなあ。
953 :
名称未設定 :2014/04/04(金) 22:36:50.93 ID:7lqVF3sj0
あ、戻り値voidだったわw
954 :
名称未設定 :2014/04/05(土) 01:50:44.18 ID:IjSLsINC0
SpriteKitを使ってゲーム製作しています。
アニメーションに便利なSKTextureAtlasでデータを読み込んでいます。
SKTextureAtlas *texture = [SKTextureAtlas atlasNamed:@"test"];
NSLog(@"%@", texture);
http://www.shuwasystem.co.jp/support/7980html/4055.html こちらのサンプルプログラムで確認すると、test.atlasの中にある画像が
すべてLogに表示されます。
しかし、新しいSpriteKitのプロジェクトを作成して同じコードを書いても
<SKTextureAtlas> 'test' 0 texturesと表示されます。
しかしサンプルプログラムに同じ手順で新しいatlasフォルダを追加すると上手く表示されます。
なので追加手順やコードには問題が無いように見えるので、
考えられる原因はプロジェクト側の設定かと思うのですが。
BuildSetting > Enable Texture Atlas GenerationはYESになっています。
同じ症状の方や思い当たる節があれば是非ご教示願います。
955 :
名称未設定 :2014/04/05(土) 06:07:33.66 ID:WNJwdQsq0
>>942 解決したかい?
- (void)resignCurrentFirstResponder {
UITextField *C = [[UITextField alloc] initWithFrame:CGRectMake(…..)];
C.hidden = YES;
[self.view addSubview:C];
[C becomeFirstResponder];
[C removeFromSuperview];
}
956 :
名称未設定 :2014/04/05(土) 07:22:57.34 ID:AwwvuH/50
EKCalenderについて質問です icloudでカレンダーがオン、リマインダーがオフの場合、EKSourceTypeLocal、EKEntityTypeReminderのEKcalenderを保存しようとすると Error Domain=EKErrorDomain Code=24 "このアカウントはリマインダーをサポートしていません。" というエラーが返ってきます。 おそらくカレンダーでicloudが有効になっているためEKSourceTypeLocalのカレンダーが保存できないのだと思うのですが、リマインダーに用いるEKCalenderのみローカルに保存することはできないのでしょうか?
957 :
名称未設定 :2014/04/05(土) 07:41:45.16 ID:J7Wr2HkS0
iOSシミュレータでサウンド入力って使えないんですか? Appleの録音サンプルもハングするので使えなさ毛ですが ネットには使えるという情報があるので、、、
958 :
名称未設定 :2014/04/05(土) 09:26:41.89 ID:vqe+i/3y0
>>943 >>955 無事おかげで解決できました。ありがとうございます。
でも一つ引っかかる点があります。
それは、なぜ以下のメソッドでキーボード非表示の処理を呼び出しても
キーボードが消えなかったのかということです。
//編集終了後に呼び出される
-(void)textFieldDidEndEditing:(UITextField*)textField{
//キーボードを閉じる
[textField resignFirstResponder];
}
firstresponderについてなんとなくしか知らないのですが
これに関して勉強すれば分かるのかな
959 :
名称未設定 :2014/04/05(土) 10:07:52.17 ID:/mDa7tOB0
>>952 ありがとうございます!!
おかげで解決できそうです。
960 :
名称未設定 :2014/04/05(土) 11:04:27.65 ID:qSgRPWqj0
>>958 textFieldShouldBeginEditing:で、NOを返しているから、FirstResponderが変わらないので、textFieldDidEndEditing: が呼ばれないからじゃね
961 :
名称未設定 :2014/04/05(土) 11:13:39.18 ID:qSgRPWqj0
>>958 ああ、textFieldDidEndEditing:のtextFieldがresignされるのに/されるからtextFieldDidEndEditing:に入っているのに、そこで[textField resignFirstResponder]しても意味が無いの方か
962 :
名称未設定 :2014/04/05(土) 13:06:17.92 ID:vVVa4RFe0
質問ですがUITextViewの行数を取得する方法はありますか?
963 :
名称未設定 :2014/04/05(土) 13:12:17.12 ID:MFTvxrzF0
964 :
名称未設定 :2014/04/05(土) 13:19:46.31 ID:vVVa4RFe0
>>963 返答ありがとうございます。
自分が調べたのが以下のコードになるのですがこれだと”改行”を押したときの行数を取得できるのですが、
テキストを右端まで入力したときに自動で改行されたときの行数は取得できないです。
右端まで入力して自動改行されたときの行数の取得方法はありますか?
- (BOOL) textView:(UITextView *)textView
shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
{
static const NSUInteger MAX_NUMBER_OF_LINES_ALLOWED = 3;
NSMutableString *t = [NSMutableString stringWithString:
self.textView.text];
[t replaceCharactersInRange: range withString: text];
NSUInteger numberOfLines = 0;
for (NSUInteger i = 0; i < t.length; i++) {
if ([[NSCharacterSet newlineCharacterSet]
characterIsMember: [t characterAtIndex: i]]) {
numberOfLines++;
}
}
return (numberOfLines < MAX_NUMBER_OF_LINES_ALLOWED);
}
965 :
名称未設定 :2014/04/05(土) 13:30:25.63 ID:y+GbYt8l0
xcodeでMFMailComposeViewControllerを使用してメール送信アプリ作成中です。 送信ボタンをクリックしてメールを送信するのですが、メールが到達しません。 mailComposeController:didFinishWithResultのresultをチェックしても正常終了しています。 これは、MACのsendmailプログラムにメールは渡されたが、MACがメール送信していない状態なのでしょうか? MACの場合、メール送信キューってどのフォルダーになるんでしょうか?
966 :
名称未設定 :2014/04/05(土) 13:39:41.53 ID:y2sDM+st0
なんでMacが出てくるの? MacのSMTPを使ってるってこと?
967 :
名称未設定 :2014/04/05(土) 13:46:38.79 ID:MFTvxrzF0
>>964 __block NSUInteger count = 0;
NSRange allGlyphs = [textView.layoutManager glyphRangeForTextContainer:textView.textContainer];
[textView.layoutManager enumerateLineFragmentsForGlyphRange:allGlyphs
usingBlock:^(CGRect rect, CGRect usedRect, NSTextContainer *textContainer, NSRange glyphRange, BOOL *stop) {
count++;
}];
968 :
名称未設定 :2014/04/05(土) 13:47:08.79 ID:y+GbYt8l0
>>966 xcodeからメールが送信されないから、
xcodeはmac osにメールを渡しているだけかと想像しただけです。
私はmacやxcodeは初心者なので・・・
不具合を分析するために、macの隠しファイルの表示やコマンドの使い方等知らなければならないことが多いですね。
969 :
名称未設定 :2014/04/05(土) 13:56:10.64 ID:qSgRPWqj0
>>968 MFMailComposeViewControllerのSendはMail.appに依頼するだけのようかな。Mail.app(orメールのcore?)が実際に送信するような
てきとーにsmtpサーバの設定してやってみたら、MFMailComposeViewControllerは問題無くMFMailComposeResultSentだが、Mail.appでsmtpに送信できなかったって出てる
そういうもんなんだろう
970 :
名称未設定 :2014/04/05(土) 14:02:58.30 ID:qSgRPWqj0
>>965 ということで、Simulator には Mail.app が無いので、MFMailComposeViewControllerでメールは送れないだろう
実機では、Mail.app みりゃわかるだろう
971 :
名称未設定 :2014/04/05(土) 14:21:39.07 ID:y+GbYt8l0
今のところ、mail.appの設定をするという所まで踏み込むのは時間がないので 後日実機に入れて確認してみます。
972 :
名称未設定 :2014/04/05(土) 15:56:39.17 ID:8ADYjdDR0
実機テストをiPhone5で行って落ちずに問題なく行くのですが iPhone5よりメモリ容量が少ないiPhone4で落ちないか心配です ですが自分はiPhone4を持っていないのでiPhone4での実機テストが出来ません iPhone4のメモリ容量512MBのうちアプリに使用出来るのは何MBぐらいか教えていただけないでしょうか
973 :
名称未設定 :2014/04/05(土) 20:38:29.76 ID:mwSPj3uM0
落ちてもいいじゃないか、iPhoneだもの。 じょぶず.
974 :
名称未設定 :2014/04/05(土) 20:45:57.63 ID:uyIHZYTr0
NSString *str = @"テストテスト"; ストアにリリースしたアプリのバイナリを脱獄するなどして取得した場合、 ↑の文字列"テストテスト"は解ってしまうもんでしょうか。 ゲームのラスボス名やパスコードなど仕込みたいんですが…
975 :
名称未設定 :2014/04/05(土) 20:50:05.94 ID:qnZHkfjc0
976 :
名称未設定 :2014/04/05(土) 20:51:22.37 ID:uyIHZYTr0
>>975 マジですかw
ありがとうございますー データ暗号・復号ってどうしてますかね、復号するにしてもパスワード必要ですし…
977 :
名称未設定 :2014/04/05(土) 21:00:40.31 ID:qnZHkfjc0
どういうのが正解かしらんけど、自分は見られたくない文字列は実行時に計算で作ったりする。
978 :
名称未設定 :2014/04/05(土) 21:14:47.95 ID:qSgRPWqj0
>>972 1Mのcallocの繰り返しでは651でアウト
1MのNSMutableDataの繰り返しでは520でアウト
確保したメモリに値を埋めてもクラッシュはしないけど、そうなのか!?
SYS-ActivityではFreeは265M。まあ、これが目安だろうな
iOS 7.1
979 :
名称未設定 :2014/04/05(土) 21:20:02.05 ID:uyIHZYTr0
>>977 なるほど、ありがとうございます。参考にします。
980 :
名称未設定 :2014/04/05(土) 22:06:05.02 ID:vqe+i/3y0
暗号・複合ならAES使えば? コードみてもいまいちわからんが 単に文字列を暗号化、復号化するくらいなら ほとんどコピペで実現できそうな感じだった。
981 :
名称未設定 :2014/04/05(土) 22:10:43.04 ID:qSgRPWqj0
>>978 値を埋め損なっていた
1Mのcallocの繰り返しでは352
1MのNSMutableDataの繰り返しでは349
で、クラッシュ。まあ、これが順当か
982 :
名称未設定 :2014/04/05(土) 22:34:12.25 ID:iceRxZkr0
iOSにはKeychain Servicesというものがあってだな
983 :
名称未設定 :2014/04/05(土) 22:38:14.58 ID:cPWU0UhY0
UIScrollViewのオブジェクトのcanCancelContentTouchesをYESにして そのオブジェクトに touchesBegan:touchesMoved:touchesEnded:を実装し、背景を青色にした 適当な大きさのUIViewのサブクラスを貼付けて 起動してみたのですが、素早くスワイプするとtouchesBegan:touchesMoved:touchesEnded:が 呼ばれずに画面がスクロールされてしまいました。 UISwipeGestureRecognizerが原因と考え、UIScrollにresignFirstResponder UIViewのサブクラスにbecomeFirstResponderを送っても相変わらず素早くスワイプすると 画面がスクロールされます。 なぜスクロールされるのでしょうか?
984 :
名称未設定 :2014/04/05(土) 22:48:16.99 ID:8ADYjdDR0
>>978 ありがとうございます
使用メモリ見たら最大でも180MBぐらいだったので安心しました
985 :
名称未設定 :2014/04/06(日) 03:34:47.91 ID:QMoYN2no0
ラスボスの名前くらいならIBM→HAL程度の 変換でいいんじゃ
986 :
名称未設定 :2014/04/06(日) 07:03:09.16 ID:l6oxp3sI0
>>983 素のscrollViewにこれだけでいいよ。
delaysContentTouches = NO;
canCancelContentTouches = NO;
987 :
名称未設定 :2014/04/06(日) 10:24:13.17 ID:e6jAjAu90
988 :
名称未設定 :2014/04/06(日) 11:46:44.25 ID:UKPttMOR0
質問です。UIImageから特定の座標のピクセルの色を取得するにはどういうふうにすればいいでしょうか?
989 :
名称未設定 :2014/04/06(日) 12:07:10.97 ID:P0oxT3OU0
990 :
名称未設定 :2014/04/06(日) 12:54:31.69 ID:UKPttMOR0
>>989 おぉー!
求めていたのはこれです!!
使ってみたいと思います。
本当にありがとうございました。
991 :
名称未設定 :2014/04/06(日) 15:17:31.93 ID:HCtxasq00
画像リソースを動的に生成することは出来ますか?
992 :
名称未設定 :2014/04/06(日) 19:39:41.98 ID:TRAJu8d90
事故解決しましたわ 欲しいのはUIImageオブジェクトでした。普通に出来るんですね ObjectiveCの文法表記がわがんね…
993 :
名称未設定 :2014/04/06(日) 20:11:59.58 ID:3UCZgO7W0
アプリ内部でNSURLを介して情報をやりとりするためにNSURLにデータを載せたいんですけど上手いやり方ありますか? 普通のhttpリンクと区別するために独自のURLスキームとかつける感じで とりあえず思いついたのはjsonに変換してURIエスケープしてパラメータに載せるっていうやつなんですけど 例えば @"myapp://myapp.com/?object=%@", uriEscapedJSONString みたいな感じで ただこのmyapp.comとかが冗長な気がして、いろいろフォーマット模索してるんですけど myapp:/?object=%@ とか myapp://?object=%@ とかでもいけるみたいなんですけど myapp:?object=%@ だとダメな感じで (URLがnilになる) 一番いいURLのフォーマットとか他にいいデータの載せ方あったら教えてください
994 :
名称未設定 :2014/04/06(日) 20:38:14.31 ID:P0oxT3OU0
>>993 ちなみに、なんでURLスキームでなの?後々に外部からもできるようにと想定して?
995 :
名称未設定 :2014/04/06(日) 20:57:21.90 ID:3UCZgO7W0
>>994 いや、使ってるライブラリの都合です
属性付き文字列にリンクを張るときにNSRangeとNSURLしか指定できないんです
996 :
名称未設定 :2014/04/06(日) 21:14:11.19 ID:P0oxT3OU0
>>995 ふむ。なる(?)
myapp:?object=%@
でもNSURLインスタンスになるけど。queryとか取り出せずに、自分でURL文字列からになるけど
%@の部分をURLエスケープ文字列にしてないとか?でも、myapp:/?object=%@だと問題無いんだよなあ??
スラッシュが一つでも必要なのはRFCとかそういうのでの決まりかなあ
997 :
名称未設定 :2014/04/06(日) 21:26:17.75 ID:3UCZgO7W0
>>996 説明不足でした。
rangeとurl指定するとクリックしたときにdelegateメソッドで、クリックされたリンクに指定したurlが渡されるんですけど
そこでWebページを開くんじゃなくてアプリ固有の動作をさせたいんです
例えば、ツイッターで@twitterJPの文字列にアプリ内だけのリンクを張って、jsonに"id":"twitterJP"とか埋め込んでおいて
そのリンクがクリックされたらWebページ開くんじゃなくてjsonからidを取り出してtwitterJPのユーザー画面を開くみたいな
delegateメソッドは普通のhttpリンクも固有アクション用のリンクも区別せずに投げてくるので、区別するためにURLスキームは固有のに変えるということです
すみませんURLはできてました。queryがnilになってました。
パースの手間考えるとやっぱりスラッシュ挟むのが一番ですかね?
998 :
名称未設定 :2014/04/06(日) 21:37:48.36 ID:P0oxT3OU0
>>997 なるほど
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
と同じようなのがあるのね
myapp:?object=%@
でもschemeはちゃんと取れるでしょ。まあ/一文字付けるだけなんだから、付けとけば
webView:shouldStartLoadWithRequest:navigationType:
のようなのがあるなら、URL中にJSODNとか埋めずにタグ値だけにしてーの、
タグ値からパラメータのDictionaryを作っておいての、そこを参照するとかするけど
まあ、それは別の話しか
999 :
名称未設定 :2014/04/06(日) 21:54:07.47 ID:Cc6ugBc20
1000 :
名称未設定 :2014/04/06(日) 22:01:22.84 ID:3UCZgO7W0
>>998 はい、schemeはmyapp:?objects〜でも取れます。
問題なのはパラメータ(query)の方で、/一個つけるつけないだけで取れる取れないが変わるので、どうしようかと
できるだけシンプルにしたいのですが、/がないとダメなのはどうしてかなと
RFCの仕様書の見てURIのABNF見てたら
URI = scheme ":" hier-part [ "?" query ] [ "#" fragment ]
って書いてあって、定義辿って行くと
hier-partは空でもいいみたいに書いてあるんですが、よくわからないですね
とりえあず/挟む感じでやってみます、ありがとうございました
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。