[SDK]iPhoneアプリ開発初心者質問箱37[touch][iPad]
レス数が1000を超えています。これ以上書き込みはできません。
0001名称未設定
2014/02/03(月) 21:51:25.97ID:01Kc9b180■質問する前に■
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
0002名称未設定
2014/02/03(月) 22:17:08.46ID:raDfHluVP→どうにもできない。個人で出す場合は個人名が必ず出る。イヤなら法人で。
10.Windowsで開発できないのか?
→できない。必ずMacとXcodeが必要
11.必要なスペックはどれぐらいが良いのか?MacBookAirで十分?
→2010年以降に発売されたMacならスペック的に十分。メモリは4G以上あると良い。
12.Storyboardは必須になるの?
→Storyboardナシでもアプリは開発できる。しかしAutolayoutなどStoryboard/Interfacebuilderが無いと
開発しづらかったり、今後デバイスが増えることを考慮するとなれていた方が良い。
0003名称未設定
2014/02/03(月) 22:56:27.39ID:raDfHluVP→まずはAppleの公式ドキュメントを読む。解らない単語をググるなどまずはネット情報でやってみる。
その後、大きめの書店へ幾度か行って手にとって確認する。なるべくAmazonのレビューは鵜呑みにはしないで自分にあった書籍を買う。
14.iPad専用アプリを作るが実機が必要か、iPhoneしかもってない
→実機はあった方が良い。
15.TitaniumStudio、PhoneGap、Monoとかどーよ?
→便利だし、Android向けも踏まえればアリだけど、本格的なアプリを作ったり最新技術対応となるとどうしてもObjective-C。
16.アプリが儲かったら確定申告しなくてはいけないの?
→有料アプリでも無料で広告収入でも、年間20万円を越える売上があれば確定申告をする。
扶養に入っている場合は扶養者にきいてみる。全くの始めてでも早いうちなら税務署の無料相談があるので利用する。
***万円以下なら税務署は相手しないから無問題という自己判断は大間違い。不安なら最寄りの税務署へ問い合わせ。
17.おすすめのオープンソースライブラリを教えて
→基本は自分で探す。
ttps://www.cocoacontrols.com、ttps://github.com などで検索すると良い。
18.アプリを申請したのにリジェクトされた、良い対策は無いか
→レビューア(審査する人)ごとに対応が異なるため具体的な策をアドバイスするのは難しい。
ググって同様のリジェクト理由・対処が無いか調べて手探りでやっていくのが現実。
0004名称未設定
2014/02/03(月) 23:59:56.61ID:m6/7PGwZ00005名称未設定
2014/02/04(火) 08:40:28.76ID:zES3buFR00006名称未設定
2014/02/04(火) 10:39:14.65ID:35ZR5OgMP13.は書くスペース無いせいかちょっと乱暴だな、偏るのも何だがとりあえずのオススメ書いてみる。
※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なども扱った書籍もあるけど、初心者スレなので割愛
0007名称未設定
2014/02/04(火) 10:45:11.46ID:35ZR5OgMP「iOS 書籍 おすすめ」でググると、より突っ込んだブログなどがヒットするからそっちを見た方がいーねw
0008名称未設定
2014/02/04(火) 13:41:18.36ID:WiX8Fw3U00009名称未設定
2014/02/04(火) 13:55:59.36ID:P6+vbOux0マジで? どうやって置いたの?
0010名称未設定
2014/02/04(火) 14:04:00.82ID:WiX8Fw3U0置いたと言うかTextview内に空白を作りそこに画像を入れて同時に改行等がされるようにしただけです。ニュアンスおかしくてすみませんw
0011名称未設定
2014/02/04(火) 14:18:46.06ID:QI/T5kK00今後復活させるかもしれないのでボタンだけ非表示にして
処理自体はそのまま残そうかと思うんですが
こういう対応ってアップルの審査で問題視されたりってありますかね?
ソーシャルライブラリ使ってるのに投稿機能が備わってないみたいな指摘が
あったら怖いなと。
0012名称未設定
2014/02/04(火) 14:43:43.26ID:P6+vbOux0その処理は回り込みって言うんだが、普通はexclusionPaths使うんじゃないかな。
画像がUIImageViewだとして、こんな感じじゃね?
textView.textContainer.exclusionPaths = [NSArray arrayWithObject:[UIBezierPath bezierPathWithRect:imageView.frame]];
0013名称未設定
2014/02/04(火) 14:56:13.19ID:WiX8Fw3U0ありがとうございます、試してみます。
0014名称未設定
2014/02/04(火) 23:57:17.13ID:XCVamxhePストーリーボードで、モーダルであるビューコントローラに遷移します。
そのビューコントローラは、タイトルや完了ボタンを置くためにナビゲーションバーはありますが
プッシュ等でさらに画面遷移をしたりせずに、1画面だけで完結するモーダルの操作を行うためのビューコントローラです。
これをストーリーボードで置こうとしたら
ナビゲーションコントローラを置いて、ルートをそのビューコントローラに繋ぎ、ナビゲーションコントローラに対して、元の画面からモーダルでセグエを設定する
で出来ますが、
モーダルは1画面しかないのにナビゲーションコントローラがストーリーボードで間に入って邪魔
元の画面のprepareForSegue:で目的のビューコントローラにnavigationControllerを経由して辿るのが面倒
なので
普通のビューコントローラにナビゲーションコントローラを配置してナビゲーションコントローラを不要にしたいのですが
こうするとナビゲーションコントローラを使ったときと違い
ステータスバーがナビゲーションバーと同じ色にならない
→backgroundColorをナビゲーションバーと同じにしたUIViewをステータスバーのに重ねて配置?
テーブルビューをいっぱいに配置したとき、テーブルビューがナビゲーションバーの下に隠れる
→contentInsetを手動で設定?
という問題が出てきたのですがどう解決するのが一番よいでしょうか
0015名称未設定
2014/02/05(水) 01:04:55.81ID:ov2UPyx60>普通のビューコントローラにナビゲーションコントローラを配置して
ナビゲーションバーを配置してだと思うけど、IBで見た目が違うんだからUINavigationControllerでいろいろやっているのはわかることだろう
ちまちまそれに合わせるか、または、違うんだからUINavigationControllerでというのだったら、言うほど邪魔というわけでもないのでUINavigationControllerを使うな
仮に他人が見た場合になんかいろいろちまちまやっている意味があるのかと思うだろうし。他人に見られることも無いんだったら好きにすればいいと思うけど
0016名称未設定
2014/02/05(水) 13:52:22.43ID:RN4u13cd0NSRunLoopを使ってtransFormの変数timerでキャラを動かしているメソッドを呼び出し続けているのですが、
バックグラウンドになった時に timer.paused = YES;
として中断し、フォアグラウンドで timer.paused = NO;
として中断と再開をしているのですが再開した時にキャラがワープしてしまいます。
pausedはターゲットへの通知を中断する物なので他の処理が必要なのでしょうか?
0017名称未設定
2014/02/05(水) 17:25:28.42ID:nGrSl6vB0applicationWillEnterForeground: が呼ばれてから再描画までタイムラグがあるのでワープしてるように見える。
少し遅れてpaused = NO すればいい。というか DidBecomeActive: の方がいいかな。
かなりエスパーだが。
- (void)applicationDidBecomeActive:(UIApplication *)application {
[self performSelector:@selector(startAnimation) withObject:self afterDelay:1.0];
}
- (void)startAnimation {
timer.paused = NO;
}
0018名称未設定
2014/02/05(水) 18:23:56.29ID:KnWOwVZr0iOS 7からナビゲーションバーの挙動に関係するメソッドが色々追加されてるから、それ使えば同じ見た目にできるよ
0019名称未設定
2014/02/05(水) 21:17:16.02ID:Ko3c7XDi0Developer入る前に簡単な動作確認ぐらいしておきたかったんですが。
0020名称未設定
2014/02/05(水) 22:22:16.09ID:Rwb9EOr40この時の上部にあるステータスバーって消す事が可能でしょうか?
iPhoneアプリのiPhone端末やiPadアプリでのiPad端末
またユニバーサル対応アプリでは一般的なステータスバーを消す方法で問題無かったのですが、上記の条件の場合消す方法が分かりません
よろしくお願いします
0021名称未設定
2014/02/06(木) 08:37:21.31ID:t3/kpsb/0メッセージは届いているけど上からぴょこっと表示されません。
他のアプリからのPUSHは届いています。
0023名称未設定
2014/02/06(木) 12:36:08.98ID:6OrDxbBZ0メモリ解放の方法ってnilを代入しとけばいいんですか?
0024名称未設定
2014/02/06(木) 14:07:35.23ID:jdj8zMWB00025名称未設定
2014/02/06(木) 14:09:45.55ID:jdj8zMWB0アプリがバックグラウンドにある場合のOSが勝手にやってくれる代替手段でしかない
アプリがフォアグラウンドにあるんだったらアプリで自由にUXが最高なのにできるでしょ
0026名称未設定
2014/02/06(木) 14:32:43.27ID:6OrDxbBZ0ありがとう!
ググってもはっきりしなかったのでモヤモヤしてた
0027名称未設定
2014/02/06(木) 17:55:56.13ID:A+D1hdkx0Wi-FiのIPアドレス取得の方法について質問させてください。
Wi-FiのIPアドレス取得時に、インターフェース名を"en0"で決め打ちで作りました。
touch/iPad(wi-fi)では正しくIPアドレスが取得できているのですが、
どうもiPhoneは、en0はセルラー?のイーサネットのIPアドレスが返ってくるようです。
(↑環境により異なるかもしれません)
いろいろgoogle等検索したものの、セルラーのIPアドレスの取得についての記述(pdp_ip0)はあるようなのですが、
Wi-FiのIPアドレスを確実に習得する方法が見つかりません。
どなたかご存知の方、ご教示お願いいたします。
0029名称未設定
2014/02/06(木) 18:49:21.37ID:A+D1hdkx0そうなんですか、だとすると別の要因のようですね。
どうもありがとうございました。
0030名称未設定
2014/02/07(金) 00:59:48.01ID:mfE19sYN0UIImageViewで画像表示する場合のメモリ使用量ってデコード後の生のサイズですか?
あと小さい画像をUIImageViewで画面いっぱいに引き延ばした場合のメモリ使用量は引き延ばしたサイズにあわせて大きくなるのかも知りたいです。
0031名称未設定
2014/02/07(金) 02:16:57.37ID:rhmwMlVQ0圧縮されたのはデータとして保存するときのみで画像としてはデコードされなきゃ意味が無いのですよ
引き延ばしはビットマップを処理する基本的なことで、いまどきはGPUがあるのでリアルタイムに(逐一/毎回)処理されるでしょう
引き延ばした先がスクリーンだったら引き延ばしたサイズにあわせて大きくなることは(ほとんど)無いでしょう
0033名称未設定
2014/02/07(金) 06:48:47.72ID:5h0oIzWH0その後あるタイミングでそのボタンを取り外した時に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を使っています
これがバグなのか仕様なのか分かる方がいましたらよろしくお願いいたします
0034名称未設定
2014/02/07(金) 07:16:54.82ID:jIaUHns4Pを入れてみれば
0036名称未設定
2014/02/07(金) 07:24:39.96ID:5h0oIzWH0InstrumentsのLeakを使ってメモリリークの確認もしたのですが、リークは確認されませんでした
deallocだけが呼ばれない感じです
0037名称未設定
2014/02/07(金) 08:41:12.36ID:DPL/8Vkh00038名称未設定
2014/02/07(金) 09:11:31.02ID:5h0oIzWH0ソースコードは上に記載したのがほとんどなのでその可能性は考えにくい思います
一応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と同じ挙動でした
0039名称未設定
2014/02/07(金) 09:30:59.01ID:+VRVwObj0+ buttonWithType: というUIButtonクラスクラスタのファクトリメソッドがあなたのクラスを生成してないから
0040名称未設定
2014/02/07(金) 09:32:34.70ID:5h0oIzWH0testButton = [MyButton buttonWithType:UIButtonTypeRoundedRect];
のタイプをUIButtonTypeCustomにしたところ、iOS問わずdeallocが呼ばれました
それ以外のタイプを指定した場合はdeallocが呼ばれませんでした
んー標準のパーツはリソースやオブジェクト資源を使い回してるのでしょうか
0042名称未設定
2014/02/07(金) 10:00:59.74ID:5h0oIzWH00043名称未設定
2014/02/07(金) 10:01:00.05ID:9mbMRHowP>>39は[MyButton buttonWithType:hoge]で生成されてるのがMyButtonではなくUIButtonになってるって言ってるんじゃないか。
クラス名をそれぞれのパターンで確認してみて。
0045名称未設定
2014/02/07(金) 11:58:59.97ID:DPL/8Vkh00046名称未設定
2014/02/07(金) 12:22:25.46ID:JDuoYhuK0If 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.
0047名称未設定
2014/02/07(金) 21:32:53.14ID:nLImfn1u0アップデートして”waiting for review”が8日ぐらい続いているのですが
OnSaleの状態にしないと審査してもらえないのでしょうか?
0048名称未設定
2014/02/08(土) 03:16:04.00ID:rjOGGGNv0Macのプログラマは、危険な存在であることが証明された。
かれらは、青少年のお金と時間を搾取し、犯罪に巻き込もうとする。
家畜には予備的殺処分という制度があり、ウィルスを蔓延させる危険のある家畜を処分することがある。
iPhoneアプリをつくっているこのスレの社畜にも同様の制度を適用するべきだろう。
0049名称未設定
2014/02/08(土) 06:28:13.51ID:saxcZDBQ0waiting for reviewの次はin review。この状態になると審査が始まる。
今の時期は遅いみたい。とくに新規アプリの場合は数週間から
1ヶ月かかった事例もある。申請が殺到してるみたい。
通常は一週間から二週間の間にwaiting for reviewからin reviewになり
p...何とかになって、on Saieまで行く。
0050名称未設定
2014/02/08(土) 10:36:27.88ID:5RnvMaZP00051名称未設定
2014/02/08(土) 19:08:30.95ID:Hw961bLZ0iOSアプリを開発したいものの、自分の思う通りのものがきっちり作れるかどうかわからないので、それだけのために高価なMacを買うのは気が引けます。
また、実際に開発してみて思う通り作れることができればMacをきっちり買ってストアに出したいと思ってます。
プログラミングに関してはC,Ruby,Clojure等の経験があるのでプログラミングそのもので挫折する事はないです。
0052名称未設定
2014/02/08(土) 19:31:24.55ID:jmpl7yBh0>3000円くらいで売ってる
アップグレード料金です
>VMWare&Snowleopard
認められていません
> WindowsをホストにVMWareでOSX
認められていません
開発を諦めるというのも一つの手です
0055名称未設定
2014/02/08(土) 22:15:39.68ID:2KnDAO1i0変数なのですが、
インスタンス変数、クラス変数、メンバ変数、プロパティ変数、
グローバル変数、ローカル変数と色々な呼び方がありますけど、
アクセス権の範囲の違いだと認識しています。
ここで、selfというのが分かりにくいんですけれど、
クラスで色々なオブジェクトや変数を宣言している場合、
xcodeはどうやってselfが指す変数を見分けているんですか?
0056名称未設定
2014/02/08(土) 22:39:02.37ID:Hw961bLZ0ありがとうございます。
Macを買うか諦めるかの方向で考えてみます。
>>54
実際にストアに出せて完成度で競合のアプリに勝てる(と思える)レベルのアプリを作れるかです。
プログラミングを始めてみたい→iOS開発にしよう→Macどうしよう
という状態ではない、ということを言いたかっただけで深い意味はないです。
0057名称未設定
2014/02/08(土) 22:51:19.69ID:jexqCUr2PCore i5搭載した2010年以降のiMacやMac mini、2011年以降のMacBook Pro、Air。
上記にメモリ4G以上、SSD128G以上のスペックで十分に快適な開発が出来る。
ヤフオクでみると10万以下で揃う(実際にストアにアップするなら年間8800円のApple開発ライセンス払うけど)。
BootCampすればWinも動く。Win機に比べ安くはないが、無理そうなら又ヤフオクで売れば良いので
総合的にみて悪い投資じゃないと思う。
0058名称未設定
2014/02/08(土) 23:16:07.08ID:s+VwidGt0selfが指すのはクラスかインスタンスの二つしかないんじゃ
クラスメソッド内ならクラスでインスタンスメソッド内ならインスタンス
0059名称未設定
2014/02/08(土) 23:29:52.04ID:adH87VS30そそ、selfとはメソッドに渡されてくるレシーバのポインタです。
つまりそのメソッドの仮引数です。
クラスの実態は構造体で、インスタンス変数とはそのメンバー。
(レシーバがインスタンスなら、インスタンス変数へは self-> でもアクセスできる。)
この辺の仕組みはダイナミックObjective-Cがわかりやすいかな。
0060名称未設定
2014/02/08(土) 23:31:54.90ID:jmpl7yBh0インスタンス変数 と メンバ変数
他の言語で メンバ変数 と言われるのを インスタンス変数 と呼んでいるだけで、同じ
プロパティ変数
というのは存在しない。プロパティは本当は単なるアクセサの簡単な表記方法でしかない。アクセサの対象がインスタンス変数で、明確に宣言していなければ自動的に作られているだけ
まずは、ローカルに宣言があるかどうか、無かったらクラスに宣言されているかどうかとか、それこそアクセス権?(スコープを上に巡るとか)でだろう
ここで、何を質問しているのかわからないのだが...
selfが指す変数ってなんのこと?selfの中身??
0062名称未設定
2014/02/09(日) 00:11:37.03ID:uScqoxAe0[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かイマイチ分からないのです。
0063名称未設定
2014/02/09(日) 00:31:25.40ID:KJGwQePD00064名称未設定
2014/02/09(日) 00:32:02.12ID:Rsa5rYaF0>この例の場合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 の値がそのまま入るのだが...
ちょっと続く
0065名称未設定
2014/02/09(日) 00:32:40.62ID:Rsa5rYaF0どう書いたらいいかわからんが、
- (void)instanceMethod
(ViewController *self;)
{
}
ってのが暗黙的にあるのですよ。selfの中身は呼び出した時のソレが入っているのですよ
もちろん、@implementation HogeHoge クラスのメソッドなら、HogeHoge *self が
0066名称未設定
2014/02/09(日) 00:36:13.95ID:43uDd0TY00067名称未設定
2014/02/09(日) 00:40:46.38ID:43uDd0TY0-(IBAction)switchChange:(UISwitch *)sender{
self.photo.hidden=!(sender.on);
}
このメソッドには見えないけど引数としてselfがあるわけ。
引数として渡されたselfはインスタンスのポインタだから、
self.photoでインスタンスメソッド(アクセサ)を呼んでる。
0068名称未設定
2014/02/09(日) 00:42:42.80ID:Rsa5rYaF0サーバアプリでどういう機能が必要か考えます
クライアントアプリでどう表現するか考えます
サーバとクライアントでどう通信するか考えます
サーバとクライアントは協調してあーしたほうがこーしたほうがと考えますので、どっちが先とかは明確にはありません
かなり先は長いと思いますががんばってください
0069名称未設定
2014/02/09(日) 00:56:03.00ID:43uDd0TY0こう書いたらイメージできるかな?
試しにやってみ。同じ結果になるはず。
-(IBAction)switchChange:(UISwitch *)sender{
hoge(self, sender);
}
void hoge(ViewController *viewController, UISwitch *sender){
viewController->_photo.hidden = !(sender.on);
}
0070名称未設定
2014/02/09(日) 01:03:19.39ID:Onz0cVOO0逆な気がする。
アプリにどういう機能やUI、画面遷移を実装するか考えてからAPIの仕様決めるんじゃないかな?
0071名称未設定
2014/02/09(日) 01:05:07.54ID:Onz0cVOO00072名称未設定
2014/02/09(日) 04:32:37.40ID:z0JSny5A0サンプルとかをみると、意味なくいったん NSData に変換してから、いろいろやってるようなのがいっぱいあるのですが、
何のために NSData にしてるのかよくわかりません。
// NSData ← UIImage
NSData *imgData = [[NSData alloc] initWithData:UIImagePNGRepresentation(image)];
0074名称未設定
2014/02/09(日) 11:47:50.46ID:mXkN9dn70例えば現在のスコアが100で+50されて150になるときに、
101 102 103 104・・・150(この間数秒でアニメーション)のようにスコアの値をアニメーションさせたいのですが、
何かいいアイディアありませんか?また、そのようなアニメーションをするライブラリ等はあったりしますか?
ゲームのフレームワーク等は使わず、Objective-cのみで開発しています。
0076名称未設定
2014/02/09(日) 12:48:42.29ID:JqgE9iK30スコア表示部分がUILabelならtextプロパティをNSTimer使って更新していくのはどうでしょうか?
0078名称未設定
2014/02/09(日) 13:01:51.85ID:s3yXVUEj0>いろいろやってる
って、いろいろやりようがないような気がしないでも無い、また、いろいろってなにゃねんっていう。NSData への変換は無駄と思うならしなければいい
よくわからないのに「NSData への変換は無駄」って言い切るのはわからんな
その例としたのはPNGファイルとして保存するなりアップロードするなりPNGが欲しいのだろうということだけ。NSDataをNSDataに改めてというのはわからないけど
0079名称未設定
2014/02/09(日) 15:25:52.37ID:q9+TO+Mw0ナビゲーションバーを広げてタイトルの下に目次ブックマークメモと表示している場面があります。
恐らくiOS7ですとナビゲーションバーの高さを可変出来るんじゃないかと思うのですが何処かに参考になりそうなサイトがあれば教えて下さい。
0080名称未設定
2014/02/09(日) 16:19:34.18ID:Q4Oq3m0C0Safariのブックマークの場面です。
これもナビゲーションバーの領域を広げてタイトルの下にセグメント配置してますが、これはどうやって実装するのでしょうか?
0081名称未設定
2014/02/09(日) 16:34:28.75ID:43uDd0TY0その下にUISegmentedControlをレイアウトしてるだけだろ。
このヘッダービューの下(所謂ボディ)が3つのTableViewで、そのhiddenをSegmented..で切り替えてる。
俺にはそう見えるが。
0082名称未設定
2014/02/09(日) 16:41:37.57ID:43uDd0TY0その下から出てくる検索窓のビューは別のビューだよ。
TableViewのcontentOffsertに合わせてヘッダの下からニュッと顔を出す。
これはUIScrollViewにUITableViewが乗ってるのかな?
同じもん作ってみないとわからんけど、そんな感じに見えるな。
0083名称未設定
2014/02/09(日) 19:50:53.73ID:mXkN9dn70>>76
ありがとうございます。
CADisplayLinkを詳しく調べてみて、もしわからなければNSTimerで実装してみようと思います。
0084名称未設定
2014/02/09(日) 22:00:14.38ID:Ox4iB+su0B画面はA画面で選択されたステージのトップ10を表示するとして、
A・B画面は表示するデータ以外の構成は全く同じなので
見かけ上A画面からB画面呼んでるように見せて実際はまたA画面出すようにする方法有りますか?
storyboard上でA=>Bのセグエ引っ張ってB画面で使うクラスはA画面のクラスってのが無難でしょうか?
それともまたうまく使い回してA画面遷移してまたA画面を利用する事は出来ますか?
0085名称未設定
2014/02/09(日) 23:09:19.98ID:eVV7FcFyPAもBも同じクラスを使えばいい。
0086名称未設定
2014/02/09(日) 23:18:55.00ID:Ox4iB+su00087名称未設定
2014/02/09(日) 23:53:21.26ID:GoG/KJ6m00089名称未設定
2014/02/10(月) 01:33:38.18ID:SEpMakSMPCore Dataを使っていて、ログに
Cannot encode string into UTF-8.
と表示されたあと、
UTF-16 Bytes:
に続けて大量のバイト列が吐き出されるのですが原因がわかりません。
どうすれば解決できますか?
0090名称未設定
2014/02/10(月) 17:12:18.68ID:mVbt85BmP0091名称未設定
2014/02/10(月) 18:12:04.95ID:X5wWdriy0かなり遅くなるのですが、内部的に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;
}
0092名称未設定
2014/02/10(月) 21:28:47.44ID:vfgQKy9T0一番下に出そうとしているのですが、うまく位置が移動しません
書き方が間違ってるのでしょうか?
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 に書いても駄目でした。
0093名称未設定
2014/02/10(月) 22:16:47.53ID:4XNYX9Q30ちょっと面倒だろうが
UIGraphicsBeginImageContexttでなくてのCGBitmapContextCreate
UIGraphicsGetImageFromCurrentImageContextでなくてのCGBitmapContextCreateImage
に置き換えて比較してみるといいよ。変わらなかったら多分他の要因じゃね
UIGraphicsBeginImageContextとUIGraphicsGetImageFromCurrentImageContextでもビッチマップじゃないのかなあと思うが、CGBitmap...はBitmapっつーてんだからよりビットマップじゃないの
0094名称未設定
2014/02/10(月) 22:31:42.26ID:4XNYX9Q30Auto Layoutだろうなあ
そこんとこを、
dispatch_async(dispatch_get_main_queue(), ^{
}
で囲めば変わるけど、後に仕様がかわかるかも。ちゃんとAuto Layoutの勉強をしよう。もしくはAuto Layoutを使わないw
0095名称未設定
2014/02/10(月) 22:39:58.88ID:4XNYX9Q30あ、
>DatePickerを画面サイズに合わせて一番下に出そうとしている
_datePickerがViewControllerの配下にあるなら、それこそAuto Layoutでゼロコーディングなはずじゃないのか
Auto Layout使わないresizingMaskででも
Interface Builderでレイアウトしてという話しだが
0096名称未設定
2014/02/10(月) 22:44:01.54ID:QAMmDA/t0Buttonとviewcontrollerなら勝手に遷移するから便利なんだけど
画面がたくさんあるときに一つのstoryboardに全て詰め込むか、ファイル分けるべきなのかも悩む
0097名称未設定
2014/02/10(月) 22:52:46.89ID:4XNYX9Q30コードで条件によって遷移先を変える時に
- (void)performSegueWithIdentifier:(NSString *)identifier sender:(id)sender
って、簡単に分岐できるでしょ?
0098名称未設定
2014/02/11(火) 04:51:19.78ID:OBQMw9oP0MBP15Retinaで最高画面サイズにしても編集しにくい
xibでstatic cellサポートしてくれたらstoryboardなんかやめるのにな〜
segueとかもアホかと
0099名称未設定
2014/02/11(火) 04:54:18.10ID:Zxmkbgk900100名称未設定
2014/02/11(火) 05:04:59.19ID:OBQMw9oP00101名称未設定
2014/02/11(火) 10:49:45.10ID:73W47id000102名称未設定
2014/02/11(火) 11:52:04.80ID:73W47id000103名称未設定
2014/02/11(火) 13:34:16.15ID:b3uJLGP90ループ内でオブジェクトを削除する場合一般的にはどのような処理をするのでしょうか
for(Person* person in GeniusList) {
if(person.obakaFlag){
[GeniusList removeObject:person];
}
}
0104名称未設定
2014/02/11(火) 13:43:46.60ID:lLGVDVYY0Enumeration中に変更はできない。
for (NSInteger i=[GeniusList count]-1; i>=0; i--) {
Person* person = [GeniusList objectAtIndex:i];
if (person.obakaFlag) {
[array removeObjectAtIndex:i];
}
}
0105名称未設定
2014/02/11(火) 13:49:32.92ID:lLGVDVYY0[GeniusList removeObjectAtIndex:i];
0106名称未設定
2014/02/11(火) 14:06:13.68ID:Zxmkbgk90実は
for(Person* person in [GeniusList reverseObjectEnumerator]) {
if(person.obakaFlag){
[GeniusList removeObject:person];
}
で可能だったり。未チェックのオブジェクトの位置が変わるのはマズいというのだけかな
0107名称未設定
2014/02/11(火) 14:07:25.70ID:b3uJLGP90解決しました。ありがとうございました
ちなみに以下のようにするとうまくいかないのですがなぜでしょうか?
for (int i=0; i<[GeniusList count]; i++) {
Person* person = [GeniusList objectAtIndex:i];
if (person.obakaFlag) {
[array removeObjectAtIndex:i];
}
}
0111名称未設定
2014/02/11(火) 14:37:12.14ID:zKuYBaxtPNSMutableArray *array = .....;
NSMutableArray *removeItems = [[NSMutableArray alloc] init];
for (NSDictionary *item in array){
if ( 判定 )
[removeItems addObject:item];
}
[array removeObjectsInArray:removeItems];
0112名称未設定
2014/02/11(火) 15:44:44.20ID:Zxmkbgk90for(Person* person in [GeniusList copy]) {
...
}
より多くのメモリを喰うだろうけど
0113名称未設定
2014/02/11(火) 19:35:26.32ID:NerS1lMo0黒い部分だけを透明化したいのですが(アルファマスキング?)どういうコード
を使えばいいのでしょうか?
こんな感じで書いてます
省略
// 選択した画像を表示(下地)
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);
0114113
2014/02/11(火) 19:37:20.22ID:NerS1lMo0申し訳ありませんがこの質問はなかったことにしてください。
0118名称未設定
2014/02/12(水) 11:11:13.18ID:sy1zVrcR0>>117
wantsFullScreenLayoutで試してみてダメならユニバーサル対応を考えます
ありがとうございました
0119名称未設定
2014/02/12(水) 11:49:59.31ID:VZ6n8cSO0バックグラウンドで10分以上大丈夫な方法はありますか?
0120名称未設定
2014/02/12(水) 14:24:07.90ID:q3ehfUzSP0121超初心者
2014/02/12(水) 20:35:24.54ID:wcd+pdOO0みなさんがどう判別しているのかわかりません。
1枚の画像を画面全体にだして横にスワイプしたら2枚目の画像を画面全体にだすといった事をしたいのですが、
どのフレームワークが良いのかどうプログラミングしたらいいかもわかりません。
プログラミングはiPhoneアプリ開発『超』入門を読んで少しだけわかります。
0122名称未設定
2014/02/12(水) 20:51:47.42ID:LjUsP0iS0ViewControllerにUIImageViewを乗っけて、それにUISwipeGestureRecognizer乗せて、
そのコールバックをViewControllerで受けて、ってやるかな。
フレームワークはUIKitだけでできる。
どのクラスをどう使えばいいかがわからんって事だな。
始めは目的のアプリに近い本やサンプルを探すしかないかな。
0123超初心者
2014/02/12(水) 20:52:08.59ID:wcd+pdOO00124名称未設定
2014/02/12(水) 21:00:21.50ID:LjUsP0iS0つか、時間と座標を取得できるから、速いときだけ動作させるとか。
0125名称未設定
2014/02/12(水) 23:42:05.01ID:xSIOSBSY0UIScrollViewにUIImageViewを並べるだけでいいんだけどな
やることはちゃんとした座標で配置とpropertyのスイッチをちょっとオンすることだけ
フリックがスワイプに対象が追従するならスクロールってわからなくない??
0127名称未設定
2014/02/13(木) 00:08:48.65ID:rIUzux+W0まあ、>>123はじく/慣性?にこだわりがあったのかもしれないが。そうであれば尚更UIScrollViewだし、スクロールってわからなくない??ちゅう
0128名称未設定
2014/02/13(木) 00:13:49.43ID:hwlqbVJg01枚目が横に移動してるその下に既に2枚目があるのか、
pagingEnabled = YES のScrollViewでいいのか。
ま、超初心者なんだから色々やってみればいいんでないの。
0129名称未設定
2014/02/13(木) 00:36:08.77ID:yF5iPeCD00130名称未設定
2014/02/13(木) 01:28:57.12ID:V4eOQpSf0できなかったはず。
そもそもiTunes ConnectでLarge App Iconは一つしか設定できないし。
0131名称未設定
2014/02/13(木) 01:41:44.86ID:/aB25l9J0ユーザーから編集できるデータベース的アプリを作ろうと思っていますがそうなるとサーバーを用意してコードで記述して作るしかないんでしょうか?
詳しく教えてもらう必要はないので大まかな感じで教えていただけるとありがたいです
0132名称未設定
2014/02/13(木) 02:13:45.09ID:V4eOQpSf0DBをサーバに置くならならアプリ側もサーバ側もコード書く必要ある。
サーバ側はParseなどのmBaaS使えばコードいらないかもしれないが、アプリ側はコード必須。
DBをサーバに置かずアプリ内に置くにしてもコードはいる。
要するにコード書かずにDBっぽいアプリは作れないから諦めろ。
0133名称未設定
2014/02/13(木) 02:22:27.24ID:/aB25l9J0それだけ分かれば十分です
ありがとうございました
0134名称未設定
2014/02/13(木) 02:59:03.82ID:FSCSad+w0https://developer.apple.com/jp/devcenter/ios/library/japanese.html
たしか、あれの"二番目のアプリ"かなんかが
バードウォッチングで見かけた鳥をテーブルに追加してくか
なんかそんなのだったはずだが。
いや
「車を運転するんですがカーナビの指示以外の道は走れないんでしょうか?」
「カーナビの地図は最新版にしないと道が表示されないからあきらめろ」
「わかりました、日本地図を用意して車の勉強をすればいいんですね、
それだけわかれば大丈夫です。ありがとうございました。」
という言葉のブラックホールを見たような気がするんだが。
0136名称未設定
2014/02/13(木) 15:20:02.88ID:dU+JvWxa0起動時にモーダルビューを出す方法がわかりません
お願いします
0137名称未設定
2014/02/13(木) 15:24:53.41ID:hwlqbVJg00138「ガスライティング 集団ストーカー カルト」で検索を!
2014/02/13(木) 15:46:31.21ID:fFFYvn1A0・沢山の人が偏った意見を一貫して支持する
偏った意見でも、集団の中でその意見が信じられていれば、自分の考え方は間違っているのか、等と思わせる手法
・不利な質問をさせなくしたり、不利な質問には答えない、スルーする
誰にも質問や反論をさせないことにより、誰もが皆、疑いなど無いんだと信じ込ませる手法
↑マスコミや、カルトのネット工作員がやっていること
TVなどが、偏った思想や考え方に染まっているフリや常識が通じないフリをする人間をよく出演させるのは、
カルトよりキチガイに見える人たちを作ることで批判の矛先をカルトから逸らすことが目的。
リアルでもネットでも、偽装左翼は自分たちの主張に理がないことをわかっているのでまともに議論をしようとしないのが特徴。
,.,,,,
0139名称未設定
2014/02/13(木) 15:49:38.38ID:kaF4O44dP0140名称未設定
2014/02/13(木) 15:51:47.36ID:hwlqbVJg00142名称未設定
2014/02/13(木) 18:45:49.43ID:dU+JvWxa0一番最初だけ答えて欲しいから2回目以降はその画面表示しなくていいからモーダルのがいいかなあと
0143名称未設定
2014/02/13(木) 18:46:53.44ID:dU+JvWxa0performSegueWithIdentifier:sender:
使ってやってみたんですが
Warning:
Attempt to present <modalのビューコントローラ> on <モーダルの一個下のビューコントローラ> whose view is not in the window hierarchy.
とでて出来ません。
ウィンドウ階層に入ってないということだと思うんですが何をすればいいんでしょうか
0144名称未設定
2014/02/13(木) 19:13:55.80ID:ZTVrT25J0もう2時間ぐらいできない。別のアプリだけど午前中はできた。
0146名称未設定
2014/02/13(木) 20:39:24.26ID:dU+JvWxa0ViewDidAppearで呼び出したらうまく行きました
ロードの時点ではまだウィンドウ階層が形成されてないってことですね
0147名称未設定
2014/02/14(金) 03:55:11.44ID:fV8imZQs0なにか楽なやり方はないのでしょうか。
メニューにはボタンが十数個配置していて、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 ボタン
}
0148名称未設定
2014/02/14(金) 04:23:37.70ID:yZU4RX2P0いまいちわからんが、Delegateで選ばれたメニューの通知がメンドくさいってなら
- (BOOL)sendAction:(SEL)action to:(id)target from:(id)sender forEvent:(UIEvent *)event
で、アクションを投げれば、ViewControllerが拾ってくれるだろう。protocol定義
+delegate呼び出ししなくても
0149名称未設定
2014/02/14(金) 04:32:50.40ID:yZU4RX2P0具体的には
もろもろいらなくて、
[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に繋げる)
0150名称未設定
2014/02/14(金) 05:19:37.06ID:J+KeaV8e0各シーンでMenuViewをインスタンス化して表示すればいいんだよね。
それともMenuViewはシングルトンかな?
それなら、いずれの場合もプロトコルは必要無くて、単純にMenuViewのメソッドを呼ぶだけでいいし、
- (void)layoutWithMode: みたいなインターフェースがあればいいのではないの?
0152名称未設定
2014/02/14(金) 08:40:34.68ID:92ojWt0J00153名称未設定
2014/02/14(金) 10:57:54.37ID:ixmTUCkBPうるせー下ネタ混ぜんな
UIContainerView 使ってる? そのメニュー画面を別のクラスに分離するやり方がイマイチなんじゃない?
わざわざメニュー画面のオブジェクトから元の画面にデリゲート投げてるのも良く分からないな。なるべくメニュー画面用のViewControllerで処理した方が良いかと。
あとは、単に上に書かれてるようなデリゲートの関係を作るのに1日かかったって話なら、お前のプログラミング能力(つーかobjcへの慣れ)が足りないだけだからがんばれ。
0154名称未設定
2014/02/14(金) 21:31:10.94ID:wG8+nVSy0バックグラウンドから WEB開きたいのですが
アプリが自発的にアクティブにする事は可能ですか?
通知ダイアログ行う方法は知っていますが
そこから自動的にURLスキームで他アプリ立ち上げたいので
通知ダイアログは内包が良いです
エンタープライズ版ですので審査関係無いです
キオスクモード使ってたんですが 再生・巻き戻しのリモコン効かないんですね
ただキオスク無しで展示はこわいのでバックグラウンドでメインアプリを自動的に
立ち上がるアプリを作るのが目的です
0155名称未設定
2014/02/14(金) 23:54:29.10ID:FZGXBoO90完全に終了させても時間になるとアラームが鳴るのはどうやって
いるんだろうか?普通のアプリなら、たとえば音楽アプリの
アプリを閉じてもバックグラウンド再生できるけど完全に終了
させると音楽が止まる。って感じになるのだが。
0156名称未設定
2014/02/15(土) 00:28:41.38ID:jMkQEMHKP0157名称未設定
2014/02/15(土) 02:27:20.90ID:2nrDqujh0>>150
回答有り難うございます。めちゃくちゃ参考になりました。
直感的になにかおかしいことをしているとは思っていたのですが、具体的にどうすればいいか全くわかりませんでした。
sendAction:to:from:forEvent:
こんなのあったんですね。使ったことなかった。
こういうメソッドでヨソにメッセージを送れるなら、デリゲートってなんのためにあるんでしょうか?
プロトコルを定義して、これのメソッドを他のクラスで実装する。
これはやってることが明確でわかるのですが、
デリゲートオブジェクトを作ってグダグダやる意味がわからない。
0158名称未設定
2014/02/15(土) 02:35:14.97ID:v8jKnOkI0protocolは、基本的に抽象度の高いオブジェクトから低いオブジェクトをコールする規約っつーか。
ライブラリからアプリ用自作クラスを呼ぶみたいなね。
ヘッダの階層が違うから、ライブラリからはアプリ用クラスのインターフェースが見えないでしょ。
>>147はプロトコルを使う方向が逆なのよ。
0159名称未設定
2014/02/15(土) 02:57:27.79ID:ydpsvSKm0メッセージを送る方法はいろいろあるが、それぞれに使命wがある
sendAction:は、元々はMacのメニューバー(のメニューアイテム)がコマンド(アクション)を送る目的(メニューバーのメニューアイテムに限らないけど)
貴方の今回の目的には割と合っている/似ている。しかし、送り先は明確に指定しないとレスポンダーチェイン中に限られる
delegateは、まあコマンドを送る目的にはたぶん作られていない。別に使ってもいいんだろうけど
意味は>>158のおっしゃる通りです
他にもメッセージを送る方法があるけど、それぞれこの場合には私を使ってって感じがあるので、読み取ろうw
暇がある時に使わないクラス/メソッドも見てみよう(本当は読んでいないであろうAppleの なんちゃらガイド を読めと言いたいw)
0160名称未設定
2014/02/15(土) 11:27:38.68ID:Uku0Ztf300161名称未設定
2014/02/15(土) 12:54:45.59ID:1bzjeFM80どのような方法がありますか?
0162名称未設定
2014/02/15(土) 13:11:02.13ID:j2LcmNKY0http://imgur.com/rXQP6gy.jpg
制作時間はどれほどでしょうか?
0163名称未設定
2014/02/15(土) 14:14:59.38ID:vRHN0LzH0Bluetoothのライブラリ使って近距離チャットアプリ作るなら10ヶ月程度。
自前のサーバー買ってきてプログラマー雇って貴方がアプリデザインに専念するなら半年〜1年。
自前のサーバー買ってきてサーバーのプログラミングしてiPhoneのプログラミングしてアプリデザインして…なら3年程。
更にメッセンジャー等に匹敵する使い心地の良いメッセージアプリに昇華しようとするなら4年はかかりましょう。
0164名称未設定
2014/02/15(土) 14:17:03.27ID:j2LcmNKY0オラもうダメだ
0165名称未設定
2014/02/15(土) 14:18:45.54ID:j2LcmNKY0簡単な奴ないですかね?
app storeの審査に通りそうなやつで
0166名称未設定
2014/02/15(土) 15:08:51.70ID:o1Zc2oz200168名称未設定
2014/02/15(土) 15:23:17.37ID:ES1sys7Q00169名称未設定
2014/02/15(土) 15:23:26.20ID:j2LcmNKY0作成1週間審査1週間で2週間いないにapp storeいけますかね?
0171名称未設定
2014/02/15(土) 16:41:02.02ID:Uku0Ztf30UIViewにそんなことさせちゃ駄目。
UIViewのイベントをViewControllerでひろって、ViewControllerでやるべき。
0172名称未設定
2014/02/15(土) 18:29:48.71ID:+/8xYI5i0UIButtonはUIControlのサブクラス,UIControlはUIViewのサブクラス
IBでButtonからsegueを繋げるのは、ViewでperformSegueWithIdentifierと呼ぶのとそんなに変わらない
performSegueWithIdentifierをActionと同じと見なせば、ViewはAction/Segueを発行し、Actionを行なうのはControllerと見なせるだろうから
何を言いたいのかというと「駄目」「やるべき」というのとは違うというw
0173名称未設定
2014/02/15(土) 18:37:32.20ID:+/8xYI5i0UIViewがUIViewControllerを知っていれば、呼ぶだけというのはわかるだろう。UIControlのAction/Targetのように
UIViewがUIViewControllerを知る手だてが無い、または、それをするのは面倒でUIViewがUIViewControllerのレスポンダーチェーンにあるなら、
Actionをレスポンダーチェーンに投げてそのActionをUIViewController受け取ってかな
UIViewとUIViewControllerはレスポンダーチェーンとして全然無関係な位置にあるなら、NSNotificationを投げてUIViewControllerが受け取ってかな
他には...
0175名称未設定
2014/02/15(土) 23:22:18.95ID:FxcYStgY00176名称未設定
2014/02/15(土) 23:27:41.23ID:tuNW0cwIIそんなもんですか??
リンククリックとかだとサクサク動くんですが。
0177名称未設定
2014/02/15(土) 23:38:39.59ID:XYaddMF/0無名カテゴリだからプライベートってことじゃないよ。
.mに宣言すると、ヘッダに顔を出してないから外から見えないってこと。
0178名称未設定
2014/02/15(土) 23:49:18.51ID:FxcYStgY0ありがとうございます
実験してみたら別に無名カテゴリ使わなくてもプライベートメソッドとして使えました
無名カテゴリはメソッドを先頭にまとめておけるという利点だけでしょうか?
0179名称未設定
2014/02/15(土) 23:53:48.35ID:unVXSHkk0普通は問題ないけど継承した時にはまったりする
0180名称未設定
2014/02/16(日) 00:22:49.23ID:jV+HAoRh0一般にはプロパティを隠蔽したい時に使うかな。(完全な隠蔽ではないけど。)
要は、ヘッダにインターフェースとして出すか出さないかなんだよ。
俺の場合は無名カテゴリは、複数カテゴリからなるちょっと規模の大きいクラスとか、
複数のクラスからなるクラスタのときに使う。
0181名称未設定
2014/02/16(日) 01:56:23.71ID:BpqmDdo/00182名称未設定
2014/02/16(日) 05:30:58.21ID:/twp2z5e0チャレンジ機能を無効にする方法ってないですかね?
スコアランキングだけでいいのによくわからん機能の対応したくないっす泣w
0183名称未設定
2014/02/16(日) 05:54:59.13ID:Ub4TEROt0ゲームスタートとかゲームオーバーとかw
0184名称未設定
2014/02/16(日) 11:05:01.31ID:H8yFxlge0「UIAlertViewが消えたら成功です」ということを一般ユーザに分かりやすい英語で説明するために、「ウィンドウが消えれば成功です」ということを英語で表現したいのですが、
「It is a success if the window disappears」
という英語は適切でしょうか?
もっと適切な英文があればご指摘よろしくお願いします。
0185名称未設定
2014/02/16(日) 11:22:31.05ID:crDyG7ed0NSString *query = [NSString stringWithFormat:
id[]=%@"&id[]=%@", @"2", @"110"];
[request setHTTPBody:query];
こんな感じでやるとPHPでは配列として受け取ってくれるんだけど
id羅列するのは面倒だし実際は配列の個数が不定なので恐ろしいです。
複数のidをpost 配列の個数分文字列として送る以外に
json使わないでひとまとめにして送る方法有りますか?
0186名称未設定
2014/02/16(日) 11:23:05.92ID:LdFiq2wd00188名称未設定
2014/02/16(日) 14:43:18.73ID:LdFiq2wd00189名称未設定
2014/02/16(日) 18:29:13.03ID:utQZPBF60FUCK you
0190名称未設定
2014/02/16(日) 20:19:36.60ID:A0yUaM7MP0191名称未設定
2014/02/16(日) 20:27:07.95ID:RItNwRO20サーバーアプリの実装によるだろ。サーバアプリがJSON以外でも受け付けているならそれってあるけど、JSONあるのにわざわざ他をサポートする意味はあまりないな
ちまちま自分でJSON文字列作るか、汎用のJSONライブラリ使えばええやん。NSArrayからJSONに簡単にできるでしょ
0192名称未設定
2014/02/16(日) 20:31:30.45ID:RItNwRO20>id[]=%@"&id[]=%@
そもそもこれってJSONなのか??
単にリクエスト中のパラメータに見えるけど、そんなJSON使ったこと無いから知らないだけか?
0193名称未設定
2014/02/16(日) 22:19:56.85ID:TzjRKhka0json で送ってるんじゃなくて、配列をjson使わずに送る方法があるか?、ということです。
サーバーのPHP側が普通のPOSTで受け取っているので
結局、配列で受けるのは2箇所だったのでJSONで受け取れるように修正しました。
今後のためにも方法があったら是非教えてください
0194名称未設定
2014/02/16(日) 23:03:47.83ID:/7pdfofG0だからサーバの実装によるって言ってるじゃん。なんでそれに答えないの?
サーバをいじれないならサーバに合わせた形式で送るしかないし、サーバをいじれるならいくらでもやりようがある。
例えば、id=2,110みたいにカンマ区切りにするとか。
(その場合、サーバをどういじればいいかは自明だと思うけど、分からないならやめとけとしか言えない。)
0195名称未設定
2014/02/16(日) 23:08:21.17ID:RItNwRO20なるほど。なんでいきなりJSONでない方法を聞いているのかってことでだったけど
JSONでできるんだったらそれでいいじゃん。だいたいそれが今一番簡単汎用性があるからほぼ標準になってんだろう。XMLもできるし
別にJSONでなくても簡単な独自フォーマットで何でもできるけど。サーバもそれを独自に実装すればだけど、それはできない/しないでってことだろうな
なにをめんどくさがっている/簡単にしたいのかわからん
0197名称未設定
2014/02/16(日) 23:43:54.46ID:TzjRKhka0androidのほうは PHPの$_POSTの中みると特に変換せずに配列で受け取ってるみたいだったので
同じくobjective-cでもないかなーと
explode 使う方法は気づかなかったけど修正入るのはandroid側がいやがると思うので
そのままサーバープログラムが使える方法がないか探してました。
0198名称未設定
2014/02/17(月) 00:59:22.11ID:ZpSXUoEz00199名称未設定
2014/02/17(月) 02:01:29.83ID:TXrn2nXa00200名称未設定
2014/02/17(月) 02:38:31.02ID:DawO/ySH0何かのきっかけで、突然ログにずらずらと並びます。
ARC下ではどんなところを注意すればいいですか?
とりあえずCGImageとcontextのreleaseはしました。
UIImageViewをremoveFromSuperviewしたあとのreleaseは必要ないんですよね?
0201名称未設定
2014/02/17(月) 02:46:50.11ID:0UyDNR760CF系は、createしたものは専用のリリース関数で解放。(ドキュメント参照のこと)
UIImageViewは、リテインしてるのがsuperViewだけならそれで解放されるけど、
インスタンス変数他もリテインしてるなら、imageView = nil;
0202名称未設定
2014/02/17(月) 02:48:02.21ID:0UyDNR7600203名称未設定
2014/02/17(月) 02:58:54.76ID:ZpSXUoEz0>インスタンス変数他もリテインしてるなら、imageView = nil;
インスタンス変数でのインスタンスのリテインはdeallocで解放するのを勝手に入れてくれるはず
循環参照を解消する為にdealloc以外ででそれをするなら話しは別だけど
0204名称未設定
2014/02/17(月) 03:12:30.23ID:0UyDNR760インスタンスを解放すればインスタンス変数は解放されるね。
>>200
メモリを圧迫するほどでかいって事は、NSArrayとかに大量に入れっぱなしなんじゃ?
あとCGContextRefを生成してるみたいだけど、他にもCGColorSpaceRefだの、
CGBitmapContextCreate()の第一引数だのチェックした方がいいよ。
0205名称未設定
2014/02/17(月) 03:15:06.63ID:0UyDNR7600207名称未設定
2014/02/17(月) 11:56:39.82ID:zxhdIrMw0PEAR::Text_Wiki の Objective-C版みたいなものです。
0208名称未設定
2014/02/17(月) 12:34:51.26ID:rSEESWZa0でググると何か出てくるね。直接の解決策(ライブラリとか)にはならんけど
何か参考になるのはあるんじゃないのかな。
0209名称未設定
2014/02/17(月) 13:05:30.51ID:zxhdIrMw0ありがとうございます。
少し時間がかかりそうなので調べてみます。
なお、最終的な目標はWikipediaの本文をリンク付きでHTML化することです。
0210名称未設定
2014/02/17(月) 18:27:47.83ID:GrRcHLYE0CoreTextPageViewerというサンプルプログラムを読んでいるのですが、
その中のCoreTextScrollView.mには、
複数の@interfaceと@implementationの組(ソース)が書かれています。
(1)どういう場合に一つの実装モジュール内に複数クラスの実装を記述するのでしょうか?
(2)awakeFromNib等(initメソッド)が複数あるのですが、
一番最初にどれが実行されるのかはどうすれば分かるのでしょうか?
0211名称未設定
2014/02/17(月) 19:08:46.01ID:wZMh9XcNP一般的には実装モジュールじゃなくてコンパイル単位とか
ソースファイルって言うんだけど、
そのファイルの中でしか使わなくて、わざわざ他の
ファイルにするほどでもないものはまとめてしまうことあるよ。
awakeFromNib は xib などからロードされプロパティの
セット、outlet の接続が完了してから呼ばれる。
(ドキュメントに書かれてるはず)
一番最初に呼ばれるのは何も引き数のない init。
ただしその時点で必要な初期化が完了しているかどうかはクラス次第。
NSObject としての初期化は完了しているけど。
0212名称未設定
2014/02/17(月) 19:43:06.81ID:GrRcHLYE0レスありがとうございます。
Aというソースファイルに含まれているB、C、Dのオブジェクトは、
Aのオブジェクトが生成されても生成されないという理解で良いのでしょうか?
(Aのコードの中でB、C、Dを明示的に生成するのでしょうか)
その場合、Bの中に記述されているawakeFromNIbは、いつ呼ばれるのでしょうか?
また、Cの中にもawakeFromNIbがある場合は、
呼ばれる順序はどういう規則で決定されるのでしょうか
0213名称未設定
2014/02/17(月) 20:07:10.60ID:0UyDNR760B, C, Dは、Aがそれを必要になったらAが生成-初期化する。
BのawakeFromNibは、Bの初期化時に呼ばれる。Cも同様。
0214名称未設定
2014/02/17(月) 20:49:17.89ID:tkvsxP0t0awakeFromNibは、nibファイル(というのは歴史的な名前で、今ならxibやstoryboard)から
読み込まれてオブジェクトが生成された時に呼ばれるメソッド。
xib/storyboardからオブジェクトを生成する場合、
1. 各オブジェクトをalloc/initWithCoder:で生成および基本的なプロパティを設定
(この場合、initやinitWithFrame:などは呼ばれない)
2. オブジェクト間の関連(IBOutletやIBActionなど)を接続
3. 最後に、各オブジェクトのawakeFromNibを呼ぶ
って流れになる。
0215214
2014/02/17(月) 21:04:39.87ID:tkvsxP0t0https://developer.apple.com/library/ios/documentation/uikit/reference/NSObject_UIKitAdditions/Introduction/Introduction.html#//apple_ref/occ/instm/NSObject/awakeFromNib
蛇足だけど、nib はたぶん NeXT Interface Builder の略。
NeXT は Steve Jobs が Apple を追い出されてる間に作った会社で、
NextStep という OS X や iOS の元になった OS (と、それを動かすマシン) を作ってた。
で、NSObject とか NSString とかの NS は NextStep から来ている。
0216名称未設定
2014/02/17(月) 21:05:32.67ID:MOTfwK1t0最初からそのまま存在していて、クラス名[alloc]でメモリとって[init]で初期化というセットで
実際のインスタンスを生み出す。これが基本
しかし、インターフェイスビルダー関係のファイル(xib/nib)は
起動時にロードされて実行時にパーツがアクティブになっていてくれなくては困るので
アプリ起動後インスタンスが生成された状態まで自動で行ってコントロールが来る。
以前はこの仕組みのせいで参照カウントがズレてちょっとめんどくさいことを
しなきゃいけなかったんだが、自動参照カウント(ARC)実装で気にしなくてよくなり…
そして、そこで悩まなくなった結果また混乱している人が増えてるような気がしないでもない。
0217名称未設定
2014/02/17(月) 22:34:03.21ID:R4R01axR0数万行は書いたプロジェクトがあるのですが、ARCをOFFにしていたのをONにしてみました。
ビルドエラーがたくさん出るのでコードを手直しし、ビルドを通し起動してみたところ、
起動はするのですが、ちょっと画面上の何かに触れるだけでUIApplicationMain部分でエラーが起きクラッシュします。
おそらくxibで定義されたパーツへのアクセスで引っ掛かっているのではないかと思うのですが、コード上でエラーや警告はないのに
ARCのON/OFFでこのようなことが起こる原因は何が考えられますか?
0218名称未設定
2014/02/17(月) 22:40:59.98ID:tkvsxP0t0無謀すぎ。手で直すよりもEdit→Refactor→Convert to Objective-C ARCの方がいいと思う。
落ちるのは、ポインターがassignになってるせいかも。strongかweakにしてみれば?
0219名称未設定
2014/02/17(月) 23:31:51.52ID:wZMh9XcNPそういうことです。
コードで生成される他に xib をロードした時に自動生成されます。
awakeFromNib が呼ばれるのは後者の場合だけです。
単一の xib ファイルの中に幾つかのオブジェクトがあるとき、
それぞれのオブジェクトの awakeFromNib がどんな順序で
呼ばれるかは決まっていないと思います。
ドキュメントみて見てください。
0220名称未設定
2014/02/17(月) 23:49:15.10ID:R4R01axR0コンバートは結果的にはしました。
instrumentsでゾンビを見てみましたが、原因箇所は
[self.view addSubview:hogeVC.view];
と全然アテになりませんでした。なかなか困り者です..
0221名称未設定
2014/02/18(火) 05:24:18.55ID:Ofz13Oye0これ普段でも基本中の基本なんだけどな
0222212
2014/02/18(火) 08:02:29.82ID:YYPIVlI30レスありがとうございます。
0223名称未設定
2014/02/18(火) 12:54:21.32ID:OTXs6WMcPLooperを必要としない場合GCDとNSOperationで処理効率の差はあるのでしょうか
またhttpなどでLooperを必要とする場合NSOperationとNSThreadとではどうなんでしょうか
0224名称未設定
2014/02/18(火) 15:32:12.69ID:LPHXOAys0勝手に解放されてbad accessになるのでretainしたり
NSTimerを使う時もretainしていたのですが
久しぶりにアプリ開発したらretainが書けなくなってました。
で案の定クラッシュするのですがどうしたらいいのでしょう。
ARCを切る以外に方法ありますか?
0225名称未設定
2014/02/18(火) 15:53:37.79ID:rxImNO0j0スレッドを行なう処理をクラス化した方がかっこいい場合は、NSThreadかNSOperationかなあ
スレッドのリクエストが同時期に多発する場合は、NSThreadではなくNSOperation。NSThreadだと無限にスレッドが動くので
インラインでならGCD一択だけど
また、クラス化したいときでもGCDででもだけど、mainにあたるメソッドでdispach_asyncで大きく囲っただけなのがちょっとかっこ悪いかなあと思う
NSOperation+NSOperatioQueueのやりたいこともGCDでやっているので、悩むんだったら、GCD使うだけでいいと思うよ
GCDはNSThreadより効率がいいらしいし、NSOperationとどうかは知らんが劣ることはないだろうからなあ。俺はそんなビキビキな効率なんて求めることが無いから効率なんて気にしないけど
0227名称未設定
2014/02/18(火) 17:07:14.15ID:/M0JeUv200228名称未設定
2014/02/18(火) 20:08:31.70ID:9l2Jvots0EKRreminderのrecurrenceRuleに収容されていそうなことはわかったんですが…
0229名称未設定
2014/02/19(水) 01:33:46.75ID:zGRxCQtL0大抵はGCDで間に合うんじゃないか。
NSOperationの特徴はサブクラス化できるって事と、キャンセルが簡単ってとこかな。
あと、非同期でHTTPレスポンスを受け取りたいってことなら、
NSURLConnectionの非同期メソッドが楽でいいだろう。
0230名称未設定
2014/02/19(水) 03:29:00.72ID:4nMt0Lwn00231名称未設定
2014/02/19(水) 11:25:10.72ID:QoqI8c9A0static cons NSString *test = "hoge";
はダメで
static NSString *const test = "hoge";
だといいのはなぜ?
0234名称未設定
2014/02/19(水) 14:36:57.00ID:0DeqL8Ig0const NSString *testA = @"hoge"; testAの内容"hoge"は変更不可
NSString *const testB = @"hoge"; testBのポインタは変更不可
testAの場合ポインタ値の代入は可能なので、これができる↓(testBにはできない)
testA = @"fuga";
0235名称未設定
2014/02/19(水) 15:40:12.48ID:ih8qanVR0UITextViewやUIWebViewでrtfdファイルをロードしたときに
rtfd内の画像をretinaに対応させたいのですが、どうしたら良いでしょうか?
通常そのままロードしたら対応していないのでボケボケです。
0236名称未設定
2014/02/19(水) 15:43:10.40ID:PUigIotP0http通信した時にエラーで(kCFStreamErrorDomainSSL -9813)とログに表示されます
これは何のエラーでどんな風に対応したらいいのでしょうか?
0238名称未設定
2014/02/19(水) 16:35:10.77ID:TpvYSjP/0http://stackoverflow.com/questions/18033525/ios-https-requests-101
http://stackoverflow.com/questions/21025622/http-load-failed-kcfstreamerrordomainssl-9813-in-cordova-app
etc...
0239名称未設定
2014/02/19(水) 16:44:00.70ID:PUigIotP0解決しました!ありがとうございます!
0240名称未設定
2014/02/19(水) 16:49:38.68ID:TpvYSjP/0貼付けた/る画像の解像度を上げる。Previewの ツール > サイズを調整...とかで
Mac上でしか試してないが、解像度(情報)の違いによって、ピクセルサイズが同じでも画像が小さくなるので、多分大丈夫じゃないかなあ
0241名称未設定
2014/02/19(水) 18:53:39.77ID:RK3EG7Yn0ストーリーボードを使用して、ViewControllerからTabBarControllerに画面遷移したいのですが。
ログイン画面を作成したいので、ストーリーボードでボタンから紐づける形ではなくてコードを使用して
画面遷移をさせたいです。
どのようなコードを書けばいいですか?
0242名称未設定
2014/02/19(水) 21:44:14.17ID:Hvd4oBQN0UINavigationBarを画面の上部に固定せずに、
その下のScrollViewをスワイプすると一緒に動くようにしたいのですが
どのように実装すればできるでしょうか?
0243名称未設定
2014/02/20(木) 01:30:56.26ID:PP6QEKw80インフルエンザ客だらけ
警察官から聞いたからガチ
0244名称未設定
2014/02/20(木) 02:08:13.96ID:HtqIibsW0>データ保存処理しその間に保存中は進捗をプログレスバーで表示
ここの部分の定石があれば教えて頂きたかったのです。
メインスレッド上で動いているUIのテーブルビューとナビゲーションバーに加え、プログレスバーも並行して動作させたいわけです。
この場合、別スレッドでデータの保存処理をして、その進捗値を断続的にメインスレッドにあるプログレスバーに送る、という方法を考えたのですが、gcd とか、NSThread とか、オペレーションキューとか色々あるので、どれが最も簡便な形になるのかご教示頂けると助かります。
0245名称未設定
2014/02/20(木) 02:08:59.91ID:9dYAoM7d0遷移元のViewControllerからSegueを引いて、Identifierになんか入れて、
遷移元のViewControlleのperformSegueWithIdentifier:sender:をなんか入れたIdentifierで呼ぶ
>>242
単にUIViewのサブクラスのNavigation Barがあるんだから、それを置いてNavigationControllerのNavigation Barをhiddenして同期してとか
てか、そんなの気持ち悪いから、Safariとうサンプルがあるんだからそれにした方がいいと思うよ
0246名称未設定
2014/02/20(木) 02:22:56.62ID:M25gKMiG0単純にこういうこと? 保存にそんなに時間かかるかな。
dispatch_async(dispatch_get_main_queue(), ^{
progressView.progress = 0.5;
});
0247名称未設定
2014/02/20(木) 02:23:10.84ID:9dYAoM7d0特に細かい定石は無いと思うよ
そこまで書いているんだったら、好きなの選べばいいよ。対して変わりがないので全部試してみれば?面倒ならGCDでいいんじゃね
0248名称未設定
2014/02/20(木) 02:40:00.70ID:1SHSKUGfP0249名称未設定
2014/02/20(木) 03:45:44.63ID:uAvGv6Fg0自分で制御することってできますか?
一回古い画像が表示されることがあったので自分でなんとかできるならしたいです。
0250名称未設定
2014/02/20(木) 06:32:34.10ID:M25gKMiG0UIApplication の -ignoreSnapshotOnNextApplicationLaunch で、
snapshotを無視して、"default launch image" に切り替える事はできるようだ。
AppDalegate の -applicationWillResignActive: で、自分で用意した画像を使うやり方も紹介されてるが、毎度うまくいくかは知らん。
http://stackoverflow.com/questions/18959411/controlling-the-screenshot-in-the-ios-7-multitasking-switcher
0251名称未設定
2014/02/20(木) 14:31:12.54ID:uAvGv6Fg0ありがとうございます!
今ignoreSnapshotOnNextApplicationLaunch試してます。
applicationWillResignActive内で常に呼ぶようにしましたが
今まで通りスクリーンショットが普通に表示されてしまいぐぬぬって感じですw
古いスクリーンショットが表示されてしまう現象はその後発生してないので
レビューで指摘されたら対応考えようかなと思いますw
ありがとうございました
0252名称未設定
2014/02/20(木) 14:33:52.32ID:1SHSKUGfP0253名称未設定
2014/02/20(木) 17:54:31.18ID:u+mIkyy/00254名称未設定
2014/02/20(木) 17:56:32.98ID:jWHxEmcMP0255名称未設定
2014/02/20(木) 18:08:30.98ID:u+mIkyy/00256名称未設定
2014/02/20(木) 18:34:45.37ID:Jb+NtR/N00258名称未設定
2014/02/20(木) 19:46:11.66ID:jWHxEmcMP0259名称未設定
2014/02/20(木) 19:51:46.91ID:bZ4isMuW00260名称未設定
2014/02/20(木) 19:52:32.92ID:0YvSYQwg00262名称未設定
2014/02/20(木) 21:05:07.06ID:uTvxKTKB0UIViewController_AとUIViewController_Bがあります。
UIViewController_Aの中にUISearchBarがあり、UIViewController_B内のメソッドからUISearchBar.textに値を入れたいのですが、どうすればいいのでしょうか?
0263名称未設定
2014/02/20(木) 21:06:22.86ID:M25gKMiG0UILabelをサブクラス化して-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を描画してもらう
}
0264名称未設定
2014/02/21(金) 11:04:03.52ID:h8hnY0bd0回答ありがとうございます!
drawTextInRectも試してみます。サブクラス化してオーバーライドするのがiOSでは定番の手法なのですね。
0265名称未設定
2014/02/21(金) 12:16:55.02ID:J/O1+0cH0テキストファイルの読み込みで
NSHomedirectory()のオブジェクトで呼び出したとき
必ずエラーになってしまいます。
だから、
str=[[NSBundle mainbundle]pathforresource:@"名前”ofType:@"txt"];
だと必ず上手く行くんです。
どこに原因があるのかずーっとあやふやなままです。
多分、下のサイトに書いてることなんでしょうが、
http://ogksrc.net/2012/05/24/nshomedirectorynsbundle-mainbundleresourcepath/
頭が悪くて理解できないです。
0267名称未設定
2014/02/21(金) 13:11:25.82ID:22AZO+UH0その場合でもpresentViewControllerを使用するのでよいのですか?
表示中のビューへの「割り込み」と記述されていたうえ、戻るための機能も
用意されていたことからメモリ上に前に表示されていた画面が
残り続けているのではと気がかりなのです。
0268名称未設定
2014/02/21(金) 13:16:08.97ID:C87kCqNt0>戻る必要が無い一方通行
は想定していない。いつかはrootには戻るだろう。戻らなきゃ前に表示されていた画面が残り続ける
設計がおかしいので考え直そう
0269名称未設定
2014/02/21(金) 14:02:33.04ID:FaYbkbRUP入れ替えたいってれことなら今のをpopするなりなんなりして
次のをpushするなりすればいいのでは。
トランジットのアニメーションは自分でやるとして。
0270名称未設定
2014/02/21(金) 14:41:14.04ID:Vp18/FL20たぶんノベルゲーム的なもんでしょ?
それならViewControllerを次々と切り替えるよりか、
ViewControllerに表示するViewを切り替えるようにした方がいいんじゃない?
0273名称未設定
2014/02/21(金) 20:03:18.21ID:z0HEg/mW0UIImage* backImageOff = [UIImage imageNamed:@"back.png"];
[navigationItem.backBarButtonItem setBackButtonBackgroundImage:backImageOff forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
storyboard上でUITableViewから遷移させると次の画面に正しくボタン画像が表示されます。
さらに、同じ呼び元画面でボタンを追加して同じくstoryboard上でさっきとは異なる次の遷移元画面にsegueをつないでも
ボタン画像が表示されません。
「<」も表示されなくてただ Back という文字だけ表示されます。
両方の画面に戻るボタン画像を表示する方法をどなたかご存じでしょうか
0274名称未設定
2014/02/21(金) 20:42:46.42ID:fGYPpVbd0現在、hファイル (【AVに出た hkt48 に】iPhoneアプリ制作会社の面接に来た小娘をだましてAV撮影【なりたかった娘】.vob とかではない) に
に外からアクセスするプロパティをおき、
.m のクラスエクステンションに _hkt48 みたいな形式でインスタンス変数を置いています。
これで何の問題もなく、外からアクセスできない .m にプロパティを作る意味がわかりません。
0275名称未設定
2014/02/21(金) 20:46:25.68ID:8lgoP7RM00277名称未設定
2014/02/21(金) 21:09:57.88ID:Z9miQgVc00278名称未設定
2014/02/21(金) 22:42:32.41ID:Omq0NqyZ0いまいち意味が分からないけど、インストール時にはまだアプリは実行されないし、
インストールのためにあなたのサイトにアクセスするわけじゃないから、無理。
0279名称未設定
2014/02/21(金) 23:03:59.98ID:Z9miQgVc0説明が下手ですみませんでした。
iTunesのアプリダウンロードへのダイレクトリンクに&rf=123456みたいなパラメータを付けてそのパラメータの値をアプリインストール時に得る事は出来ないでしょうか?
0280名称未設定
2014/02/21(金) 23:12:26.08ID:Jl0LW+tB0>インストール時にはまだアプリは実行されないし
って言ってるんだからそれも無理だってわかるだろに??
元々が勝手に付けたパラメータをインストール後に(それもリファラ?)アプリが取得できるなんてどこの世界にもたぶん無いだろう
0281名称未設定
2014/02/21(金) 23:17:54.52ID:Omq0NqyZ0アフィリエイトのこと?
http://www.apple.com/jp/itunes/affiliates/
0282名称未設定
2014/02/21(金) 23:32:01.17ID:Z9miQgVc0いえ、下記の記事みたいな何処からアプリインストールしにきたか測定したいのです。アンドロイドは出来るんですがiPhoneアプリでは出来ないと言う事ですね?
ttp://dev.classmethod.jp/smartphone/android-referrer/
0283名称未設定
2014/02/21(金) 23:45:47.69ID:Omq0NqyZ0最初からそのリンク貼ってよ。
iOSではインストール時にコードは実行されないし、どこからインストールされたかの情報も渡されない。
(ってか、インストールしただけで実行されてしまうなんて怖すぎる。)
Androidに出来ることがiOSで出来て当然って思い込みもやめて欲しい。
0284名称未設定
2014/02/21(金) 23:59:14.08ID:DqN6xGKvP新しいiTunesConnectでどこ経由でインストールされたのかがレポート表示されなかったかな。
0286名称未設定
2014/02/22(土) 08:44:50.23ID:XXEE0Ij+0ボタンAの上に乗っけられている文字ラベルまで影がついてしまいます。
このラベルにだけ影を消したいのですがどうすればいいのでしょうか?
ちなみにボタンAにラベルをaddsubviewしたという条件のもとでお願いします。
0287名称未設定
2014/02/22(土) 13:18:14.15ID:9uhr63pC0[NSNumber longDoubleValue]というのもないし,
[NSNumber numberWithLongDouble]というのもないし,
[NSNumber doubleValue]と[NSNumber numberWithDouble]で代用するのですか?
0288名称未設定
2014/02/22(土) 13:38:10.97ID:Usft/MtQ0iOSのlong doubleはdoubleと同じだってさ。
Generally, long double is a quad-precision IEEE754 binary floating-point type. In iOS, however, it is a double-precision IEEE754 binary floating-point type. In other words, long double is identical to double in iOS.
https://developer.apple.com/library/ios/documentation/Xcode/Conceptual/iPhoneOSABIReference/Articles/ARM64FunctionCallingConventions.html
0289名称未設定
2014/02/22(土) 13:43:25.61ID:Usft/MtQ0NSArrayやNSDictionaryなどに格納するためにオブジェクトに詰め込んでる(箱詰め)って感じ。
0290名称未設定
2014/02/22(土) 16:06:08.12ID:xAaiW3ah0PCでエクセルを使用して何らかのデータを作り、csvで保存したとします。
それをiphoneに転送して、ストレージに保存し、作成しているアプリで
読み込んでデータとして使用するという事をしたいのですが
どうやって実現すれば良いのか教えて頂けますでしょうか?
0291名称未設定
2014/02/22(土) 16:43:47.70ID:Usft/MtQ0iOSには、アプリ間で共有できるストレージは存在しない(例外は写真などほんの一部)。
ので、あなたのアプリが目的のデータを直接受け取れるようにする必要がある。
例えば、
・iTunes経由(UIFileSharingEnabled)
・メールなどの添付ファイル(CFBundleDocumentTypes)
・アプリが直接DropBoxなどにアクセスしてファイルを取得
・アプリがhttpなどのサーバになってファイルを受け取る
などの方法があるけど、どれも面倒だね。
0293名称未設定
2014/02/22(土) 17:49:24.16ID:Jek2feI50>>273もそうだけど、遷移元のコントローラのnavigationItem.backBarButtonItemを設定すれば、遷移先では遷移元のこれが使われ遷移先が別にいろいろあってもNavigation中なら問題無い
なにか別の問題/勘違いじゃないの
0294名称未設定
2014/02/22(土) 18:40:29.43ID:E9VFaG4E0その条件では無理。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を追加
0295名称未設定
2014/02/22(土) 18:45:53.18ID:E9VFaG4E00296名称未設定
2014/02/22(土) 19:51:56.23ID:E9VFaG4E0影付きlayerを追加するなら、ラベルは普通にaddSubviewでもいいな。
文字だけのラベルならUIButtonのsetTitle:でもいいだろう。
要は親Viewの親layerで影を付けなきゃいけるはず。
0297名称未設定
2014/02/22(土) 20:15:38.50ID:BxO4PxHzP初めてiPhoneアプリを制作する時ってどの位の期間掛かりましたか?
ググると1週間で出来た!1ヶ月で出来た!等々見かけるのですが、
その人が特別なのか、それとも標準なのか判別できないのです
たいていどの位掛かるものなのでしょう?
自分は大学の春休みを利用して3週間位勉強しているんですが、
まだチュートリアル弄って挙動を覚えてるところです...
0298名称未設定
2014/02/22(土) 20:38:29.24ID:XXEE0Ij+0すでに2ヶ月経過してます
とはいっても毎日してるわけではないけど
0300297
2014/02/22(土) 21:01:27.68ID:BxO4PxHzPやっぱりその位時間かかるんですね
ありがとうございます
>>299
中学くらいの頃にC/C++は少し触ってて、
大学時はサークルの余興でC#でソフト書いたことあるくらいです
学部は文学部なので専門的なことは一切やってこず...
オセロもまともに作れないレベルなのですが、
一念発起してiOS開発を始めようかと
Any.Doの様なタスク管理系のソフトを作ろうかと思ってました
0301名称未設定
2014/02/22(土) 21:20:06.74ID:Jek2feI50まあ、その経歴(?)だったら数ヶ月かかっても特に遅いってわけじゃないだろう
基礎的なことを時間がかかりおもしろくないだろうが、やっておくと後が楽に速くなるんじゃね。Appleのなんとかガイドを制覇理解しとくとか
0304名称未設定
2014/02/23(日) 23:32:51.74ID:3kbkK5ip0単に、1から100まで数字があってボタンを押した回数だけを乱数にして表示するってのでも
私は出来そうにない・・・
そこはobj-cではなく、C言語の世界になるのでしょうか?
0306名称未設定
2014/02/24(月) 01:04:48.88ID:wHbE5sPR0UNIX系は標準関数があるので普通はそれを使う
Terminalで
man random
または、Linuxだけど
http://linuxjm.sourceforge.jp/html/LDP_man-pages/man3/random.3.html
1から100までなら
(random() % 100) + 1
applicationDidFinishLaunching:でsrandomも呼んでおくとよい
0307名称未設定
2014/02/24(月) 01:07:36.92ID:lrvgWSPDPttp://www.objectivec-iphone.com/foundation/math/arc4random.html
これじゃ駄目なの?
0308名称未設定
2014/02/24(月) 03:09:06.33ID:ruaGW2Kl0いじりたい部分を探すのに苦労しますけど
なにかこの手間を省くいい方法ありますか??
0310名称未設定
2014/02/24(月) 05:46:10.33ID:E5HhyyRc0xcodeでさ、
ソースコードの画面の左端をマウスでクリックすると、
それぞれのメソッド内を非表示にできるよ。
0312名称未設定
2014/02/24(月) 08:22:57.54ID:r4HCL8VDP// TODO: debug it
0313名称未設定
2014/02/24(月) 08:43:59.07ID:3Y1YDFDy00316名称未設定
2014/02/24(月) 15:31:53.99ID:+GxhUQl50NSCalendarのrangeOfUnit:NSDayCalendarUnit inUnit:NSMonthCalendarUnit forDate:[NSDate now]
で取得できても良さそうなのですが,無理でした。
もちろん,((year % 4 is 0) && (year % 100 != 0) || (year % 400 == 0))を最終的に使えばよいことは前提の上。
コードの可読性から2,3行でできればよいのですが,意外と10数行前後かかります。
コードゴルフ的な質問ですが,知恵者いたらよろしくお願いします。
0317名称未設定
2014/02/24(月) 16:44:06.04ID:70DB4qr00- (IBAction)pushBtn:(id)sender {
NSURL *url = [NSURL URLWithString:@"http://appstore.com/kaihatutarou/"];
[[UIApplication sharedApplication] openURL:url];
}
これでテストしたみたところSafariが立ち上がって
このページはSafariでは表示出来ませんと出ます
Safariじゃなくて直接App Storeのアプリで表示するには
どうしたらいいでしょうか?
0318名称未設定
2014/02/24(月) 16:52:18.61ID:lZVDdFnS00319名称未設定
2014/02/24(月) 17:20:31.45ID:d2KYW2cf0#define hoge(year) ((year % 4 is 0) && (year % 100 != 0) || (year % 400 == 0))
じゃダメなんすか
ちなみにisってなんすか
0320名称未設定
2014/02/24(月) 18:24:34.01ID:MEvJbA6e0NSDateComponents *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;
でどうですか?
0321名称未設定
2014/02/24(月) 18:43:13.98ID:MEvJbA6e0((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));
ですね
訂正します。
0322名称未設定
2014/02/24(月) 19:14:51.87ID:ah28zgjz0cocoaPodを導入して作業をしていたのですが、The file “project.pbxproj” could not be unlocked.
というエラーが表示されてxcodeが閉じられなくなりました。
色々ググってみてファイルのパーミッションを変更したりしたのですが解決できません。。。
どうすれば解決できますか?
0323名称未設定
2014/02/24(月) 23:20:20.90ID:kdHterKD0NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setPositiveFormat:@"#,###.##########;0;-#,##0.##########"];
NSString *result = [formatter stringForObjectValue:value];
return result;
}
で3桁区切りの文字列を返しているのですが,returnのところで,formatterがメモリリークになると指摘されてしまいます。
ARCのときreleaseが使えないので,どうすればよいですか?
0324名称未設定
2014/02/24(月) 23:43:07.24ID:NtDQD6J/0ARCでは出ないけど。もちろんAnalyzeでも
MRCでのAnalyzeで初めて出るけど、そらそうだだし
0326名称未設定
2014/02/25(火) 04:23:36.26ID:XJDNFF1y0スムースなスクロールと両立する表示の更新方法は、どうしたら良いのでしょうか?
ヒントでも良いので、お願いします。
0327名称未設定
2014/02/25(火) 04:37:24.18ID:Vpd81hSu00328名称未設定
2014/02/25(火) 07:07:35.08ID:XJDNFF1y00329名称未設定
2014/02/25(火) 08:03:06.49ID:VZfq+4xC0UILBaelとかUIButtonとかの既存のUIクラスを継承して
自分独自のUIクラスを作ることってかなり基本的なことなのでしょうか??
自分は
Viewcontroller内で、例えばUILabelwを作成してからそのラベルを改良していきます。
なのでいつもコードの行数がすごく長くなります。
そこで>>314見て思ったのですが、
事前にUILabelのクラスを継承して、自分なりの改良を加えた独自クラスを作成します。
そしてそれをviewcontrollerに生成するという流れのほうが一般的なんでしょうか
0330名称未設定
2014/02/25(火) 09:28:03.03ID:IJyHSH5BP使い回しがきいて、コピペしなくてすんで、可読性が高くなるならどんな設計でもいいんじゃないかな。
0331323
2014/02/25(火) 10:38:31.90ID:KmJxaLKt0ありがとうございます。
ARCなのですが,元々MRCで作ったやつだから,
うまく,変換できなかったのかもしれません。
もう一回やり直してみます。
0332名称未設定
2014/02/25(火) 12:02:53.73ID:VZfq+4xC0とくに常識的な手法というわけではないのですね
わかりました
0333名称未設定
2014/02/25(火) 14:15:04.39ID:tP70ZLyr00335名称未設定
2014/02/25(火) 15:08:41.77ID:OWEINv2x0NSLog(...) はリリース時には出力しないようにしてます。
0337名称未設定
2014/02/25(火) 18:10:14.37ID:PY34aknD0NSLog(...) が、コンソールにメッセージを出力したいのに一般的
デバッグのメッセージだから、NSLog(...) はリリース時には出力しないってだけでしょ。今のデバッグのメッセージで使っているNSLogをサラッと変える
0338名称未設定
2014/02/25(火) 18:24:07.67ID:mso7ts9C0AutoLayoutでこのようなことは指定できるでしょうか?よろしくお願い致します。
0339名称未設定
2014/02/25(火) 20:28:50.56ID:oO3yKkS/00340名称未設定
2014/02/25(火) 20:58:16.79ID:PY34aknD0設定 > 一般 > 言語環境 > 言語 が 日本語 なら特になにもしなくてもそうなる
設定 > 一般 > 言語環境 > 言語 が 日本語 でなくても強制的に日本語にしたけりゃ、
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:@[ @"ja" ] forKey:@"AppleLanguages"];
[defaults synchronize];
ってUserDefaultsに書き込んでおけば、
Localization native development region が日本語で日本語だけしかサポートしてないアプリでもちょろちょろ日本語にならない部分も日本語になる
0341名称未設定
2014/02/25(火) 21:00:49.26ID:oO3yKkS/0おぉなるほど、丁寧な説明どうもありがとう御座います。
0342名称未設定
2014/02/26(水) 00:36:27.85ID:SfL4ac9W0iOSプログラミング入門 - Objective-C + Xcode 4で学ぶ、iOSアプリ開発の基礎 大津 真
http://www.amazon.co.jp/dp/486100764X
0343名称未設定
2014/02/26(水) 02:17:05.97ID:OSI/bd840通用するかどうかは目的によって変わるけど、App Storeに出したいならXcode 5が必須。
0344名称未設定
2014/02/26(水) 02:18:20.96ID:YQjzUiQV0「変数って何?」って人なのか、「アプリ内課金について知りたい!」って状況の人なのか。
0345名称未設定
2014/02/26(水) 08:57:24.83ID:u4HY+hxe00346名称未設定
2014/02/26(水) 11:26:35.93ID:fLrLiza+0UIView+(カテゴリ).hだったりUIView-(カテゴリ).hだったりしますが、このプラスとマイナスでどちらを付けるかの基準ってありますか?
特に共通したルールが無い場合も個人の意見でお聞かせいただけると幸いです
よろしくお願いいたします
0348名称未設定
2014/02/26(水) 11:52:35.50ID:afCakoGy0初心者向けのC言語本を終えたレベルです
Xcodeはちょっと前に入れてまだ4のままだったと思います
いまのところはAppStoreに出すことは考えていません
0349名称未設定
2014/02/26(水) 16:18:24.89ID:51UZL+7y0Xcodeで新しいファイルを Objective-C category 選んで作ってみればわかるように、Appleが用意したテンプレートでは +
別に単にファイル名だから好きにしてもいいと思うけど
0351名称未設定
2014/02/26(水) 19:32:19.01ID:X9E2yTMI0NSLocaleクラスのReferenceを見たところ無いようなのですが…
0352名称未設定
2014/02/26(水) 21:48:14.66ID:RWzL9N9l0対応テーブルを作るなりするしかないよ。
参考 https://github.com/HeshamMegid/HMDiallingCode
0353名称未設定
2014/02/26(水) 22:31:37.88ID:X9E2yTMI0https://github.com/HeshamMegid/HMDiallingCode
こんなのあるんですね、助かりました。
ありがとうございます。
0354名称未設定
2014/02/27(木) 11:10:54.81ID:ZD1/L/uW0メソッド「-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を採用し、かつ、遅れを生じさせない方法、あるいはその他の解決法はないでしょうか?
0355名称未設定
2014/02/27(木) 11:30:53.73ID:r58mZdfx00356名称未設定
2014/02/27(木) 12:05:20.15ID:g6qPMo5b0sectionIndexTitlesとsectionTitlesってなぜ中身が同じなのに二つあるんですか?
0357354
2014/02/27(木) 12:18:19.98ID:ZD1/L/uW0TouchDownならメソッド実行が即座に行われますが、
お伝え出来ていなかった実用途には適用できないのです
情報の小出しをしてしまい、申し訳ありませんでした
その実用途とは「ボタン押下毎に、そのボタンに画像AとBを切り替えて割り当てる」というものです
この時、
1. 切り替えはボタンから指を放した瞬間に行う
2. 押下が短時間で何度も行われても、そのイベントを取り逃がさないようにする
という条件があります
よって1. より、TouchDownでは押した瞬間に発生してしまうので適用できません
また2. より、前述の遅れは許容できません
0358356
2014/02/27(木) 13:02:47.72ID:6pR/g2CU0日本語環境の場合sectionIndexTitlesとsectionTitlesは中身違ったんですね
0359名称未設定
2014/02/27(木) 13:52:42.73ID:Q1267i3m0IBでTap Gesture Recognizerをボタンにドラッグ&ドロップして、Tap Gesture RecognizerのActionをfoo:に接続すれば、�@と等価でコードレスになるんじゃね
0360354
2014/02/27(木) 16:16:33.68ID:1YADc1tBPそういうのもIBの部品としてあるんですね、知りませんでした
そしてその方法でうまくいきました、ありがとうございます!
0363名称未設定
2014/02/27(木) 21:09:13.92ID:NLWeWL8p0以下のような、オブジェクト型の宣言とメモリの確保をそれぞれ別の場所で実行した場合は
いつメモリが解放されるのでしょうか??
@interface MyUIViewController (){
UIImageview *uiv; //グローバル変数のように扱いたいのでここで宣言した
}
-(void) function {
uiv = [UIImageview alloc]init];
略・・・
}
ちなみに確認ですが、以下にようにすると このfuncitonメソッドを呼び出して、終了する毎
にちゃんとメモリは解放されている。という認識でおkですよね
-(void) function {
UIImageview *uiv = [UIImageview alloc]init];
略・・・
}
0364名称未設定
2014/02/27(木) 21:24:07.69ID:r58mZdfx0MyUIViewControllerのインスタンスが解放される時に解放される。
要はその変数のスコープだね。
メソッドスコープならメソッドを抜ける時に解放だし、
インスタンススコープならインスタンスの解放のとき。
他のオブジェクトからリテインされてなければね。
0365名称未設定
2014/02/27(木) 23:27:24.71ID:r58mZdfx0あそうだ、もう解決したと思うけど、
一つのボタンでTouchDownとTouchUpInsideにそれぞれtarget, actionを割り当てることもできるよ。
0367名称未設定
2014/02/28(金) 13:07:21.18ID:F46AGGFg0メインビューで、
viewWillAppearで
self.navigationController.navigationBarHidden = YES;
viewWillDisapperでNOにしています。
これで綺麗に動いていたのですが、storyboadのautolayoutあたりをいじったからか、
設定ビューでホームボタンを押して、すぐにまたiphoneからアプリを起動させると
設定ビューが表示されたあとにナビゲーションバーが消えるようになってしまいました。
また、設定ビューからメインビューへナビゲーションバーの戻るボタンで戻ると、
画面の右上に黒い部分がチラッと表示されるようになってしまいました。
コードはいじっていないのでstoryboad側だと思うのですが解決方法を教えていただけませんでしょうか。
0368名称未設定
2014/02/28(金) 15:37:24.64ID:TV5v7zAr0ヘッダファイルに #import “NADView.h”を入れてみたところ
以下のエラーが出てしまいます。
lexical or preprocessor issue expected "FILENAME" or "<FILENAME>"
エラーがググってもよくわからないのですが
ファイルが見えてないと思われます。
framework 設定するところで特に気をつける事って有りますか?
0369名称未設定
2014/02/28(金) 16:04:21.03ID:TV5v7zAr0ダブルコーテーションの文字コードが違ったようです。
typo しないように、きっちりコピペしてたのが間違いだったようです。
半日無駄にした・・・
0370名称未設定
2014/02/28(金) 18:38:25.79ID:wWjU8eKJ0エディタで色がおかしくて気がつくんだよな。
0371367
2014/02/28(金) 20:12:52.62ID:F46AGGFg0ナブバーが消える問題は、元からあったコード上のミスでした。
黒い部分が見えるのは、
[self.navigationController setNavigationBarHidden:YES animated:YES]
で見えなくなりました。
丸1日かかってしまいました。
0372名称未設定
2014/02/28(金) 23:45:39.39ID: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;
}
}
0373名称未設定
2014/02/28(金) 23:53:38.53ID:FdfBJmZZ00375名称未設定
2014/03/01(土) 02:21:35.82ID:C0SaGtev00376名称未設定
2014/03/01(土) 06:21:58.71ID:L9cU1VF70テーブルビューは基本的にフルスクリーン。
サイズ変えたければ新たにビューコントローラ作ってコンテナで埋め込むのが楽。
0377名称未設定
2014/03/01(土) 09:18:42.90ID:C0SaGtev0コメントありがとうございます。
コンテナで埋め込む、というのは、もう少し詳しく言って頂けるとすれば、どの様にして行く作業になるのでしょうか。
0378名称未設定
2014/03/01(土) 10:52:12.09ID:5r2kIfW100379名称未設定
2014/03/01(土) 11:26:33.55ID:n2lwWhUZ0Storyboard(Xcode 5のテンプレートならそうだろう)だと、Container ViewというViewパーツがある
とりあえず、Single View ApplicationでContainer Viewを置いて/追加して意味を理解してみる。理解したら応用できるだろう
0380名称未設定
2014/03/01(土) 20:24:17.51ID:wrvwN0dv0a
iPhoneアプリつくってみたいです。
0381名称未設定
2014/03/01(土) 20:29:36.80ID:suR3K0zw00382名称未設定
2014/03/01(土) 20:35:25.56ID:n2lwWhUZ00383名称未設定
2014/03/01(土) 21:15:31.54ID:7KB+2ZUm00386名称未設定
2014/03/02(日) 02:46:28.38ID:QjrpF64j00387名称未設定
2014/03/02(日) 09:15:51.30ID:QjrpF64j0>>>377
>Storyboard(Xcode 5のテンプレートならそうだろう)だと、Container ViewというViewパーツがある
>とりあえず、Single View ApplicationでContainer Viewを置いて/追加して意味を理解してみる。理解したら応用できるだろう
ありがとうございます。コンテナビューですね。
そうしますと、Master-DetailのプロジェクトのStoryboardを改変して対応するのは不可能ということでしょうか?
0389名称未設定
2014/03/02(日) 12:03:38.21ID:QjrpF64j00390名称未設定
2014/03/02(日) 14:33:01.10ID:ls5iFkzO0うまく、static libraryプロジェクト側のリソースをアプリプロジェクト側で認識する方法はないのでしょうか?
0391名称未設定
2014/03/02(日) 14:57:20.38ID:RHbNfvYT00392名称未設定
2014/03/02(日) 15:09:08.65ID:cbRAl54/0その際にキーボードが必ず表示されてしまい、AlertViewのメッセージ内容が隠れてしまいます。
キーボードを表示させない?
カーソルを当てない?
などの解決方法を教えていただきたいです。
0393名称未設定
2014/03/02(日) 15:09:53.07ID:dhWSdJwk00394名称未設定
2014/03/02(日) 16:01:25.98ID:jNaoy4zgPお金をくれるところの住所、外国であればHPに住所掲載されてるんで、そのまま入力かな
税務調査の時には聞かれたことないなー。彼らからしたら、どこの組織からいくら入金されたかが重要なので
0395名称未設定
2014/03/02(日) 16:06:52.69ID:12DXOFVS0何を聞きたいのかイマイチわからんが、
・コードの部分の Static Library (単なるStatick LibraryでもFramework形式でも)
・リソースを納めた/突っ込んだ bundle
の二つを用意して、使う側はプロジェクトに両方を取り込む/追加するじゃね
0396名称未設定
2014/03/02(日) 17:50:56.27ID:elw9TSOl0>リソースを納めた/突っ込んだ bundle
Static Libraryにxibファイルをbundleに入れて、アプリ側で使おうと思ってるんです。
ただ、xibファイルが読めないというエラーがでるので悩み中。
0397名称未設定
2014/03/02(日) 18:24:53.00ID:12DXOFVS0>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
とかでバンドルを指定、他バンドル中のパスをゲットしてそれを指定すればいいんじゃね
0398名称未設定
2014/03/02(日) 18:38:43.37ID:12DXOFVS0http://stackoverflow.com/questions/18518657/display-uialertview-with-uialertviewstyleplaintextinput-but-to-not-have-it-show
実際動くのか知らんけど。また、そんなUI考え直した方がいいと思うけどw
0399名称未設定
2014/03/03(月) 14:02:59.06ID: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を使うのはわかっています。
0400名称未設定
2014/03/03(月) 15:05:11.37ID:3XXYgs5g0[self performSegueWithIdentifier:@"AtoC" sender:self];
とかすればいいんじゃないの?
0401名称未設定
2014/03/03(月) 15:40:23.42ID:kgJxsc4l0だったらpresentViewControllerを使わず自分で、ベースのViewControllerのviewにA,B,CのView Controllerのviewを出し入れすればいいような
presentViewControllerとdismissViewControllerAnimated使う場合はトリッキーにはなるな
0402名称未設定
2014/03/03(月) 15:48:27.38ID:GUbnuXQv0>>400
勝手な意見ですみませんが、今回はStoryboard上のSegueで繋ぎたくないです。
また、もしあなたの言うようにした場合、Viewがひたすら重ねられて、動作に影響がでませんか?(重くなるとか)
>>401
貴方が言う通り戻るがありません
>ベースのViewControllerのviewにA,B,CのView Controllerのviewを出し入れすればいいような
こうする場合、どのようにすればよいでしょうか。もしよろしければ教えて頂きたいです。
私も「1つの親ViewControllerでA,B,Cを子にして管理すればいいかな…」みたいな案は浮かんだんですが、方法が分かりませんでした。
0403名称未設定
2014/03/03(月) 17:04:17.62ID:3XXYgs5g0こんな感じだろうな。
@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
0404名称未設定
2014/03/03(月) 17:11:56.73ID:3XXYgs5g0起動中は同一のインスタンスを保持したいなら、ベースのViewControllerでABC全部取得して、
それをプロパティにするなりして、ABCにはdelegateを渡しておくとかかな。
>>401
viewだけベースにaddSubviewだと、viewControllerまでタッチが届かないんじゃないか?
0405名称未設定
2014/03/03(月) 17:34:43.10ID:GUbnuXQv0>>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];
これでひたすら重ねるだけの処理ならもう完成しています。
重ねた質問すみませんが、お願いします。
0406名称未設定
2014/03/03(月) 17:44:03.51ID:3XXYgs5g0起動時にABC全部生成して保持なら問題ないよ。つかその方がいい。
毎回同一のインスタンスをpresentするだけだろ。
0408名称未設定
2014/03/03(月) 17:55:40.51ID:kgJxsc4l0viewControllerAorBorC.view.frame = baseViewController.view.bounds;
[baseViewController.view addSubview:viewControllerAorBorC.view];
[baseViewController.subviews[0] removeFromSuperView]; // すでにあるAorBorC
が基本
トランジッションが必要なら UIView animateWithDuration: と viewControllerAorBorC.view.frame ちょちょいと
viewControllerAorBorCをかっちょよく保持したかったら UIViewController の addChildViewController: 使ってみるとか(baseViewControllerのインスタンス変数/プロパティでいいと思うけど)
ちょっと付け加えるだけかな
0409名称未設定
2014/03/03(月) 17:56:45.80ID:R1rZKGdL00410名称未設定
2014/03/03(月) 17:59:25.05ID:kgJxsc4l0×[baseViewController.subviews[0] removeFromSuperView]; // すでにあるAorBorC
○[baseViewController.view.subviews[0] removeFromSuperView]; // すでにあるAorBorC
まあ、ついでだから
// すでにあるAorBorCを削る
if( [baseViewController.view.subviews count] > 1 )
○[baseViewController.view.subviews[0] removeFromSuperView];
0411名称未設定
2014/03/03(月) 18:02:07.16ID:3XXYgs5g0ベースのViewContorollerがABCをpresent, dismiss またはhiddenを切りかえるのがいいかな。
なんだ普通じゃんw
つーか、>>400の方法でもインスタンスは増えないんじゃね?
0412名称未設定
2014/03/03(月) 18:09:41.80ID:kgJxsc4l00413名称未設定
2014/03/03(月) 18:12:39.99ID:kgJxsc4l00414名称未設定
2014/03/03(月) 18:27:46.20ID:3XXYgs5g0viewだけaddSubViewするのなら問題ないんだが。
タッチを取得したい場合はカスタムビュー側でやるってことで。
>>413
インスタンス増えるのかな?
0415名称未設定
2014/03/03(月) 18:40:27.43ID:kgJxsc4l0たぶん、普通のだったらControllerのキャッシュとか既存のとか考えないだろうから新しいインスタンスかと
Custom Segue だったら好き勝手に/増やさずにできると思うけど、Framework内部的にどうかなあ
0416名称未設定
2014/03/03(月) 19:02:26.33ID:kgJxsc4l0見落としてた
>viewだけベースにaddSubviewだと、viewControllerまでタッチが届かないんじゃないか?
viewに対するVIewControllerだからあ、そういう制約はないよ。Container Viewも同じようなことかと。知らんけどw
ただ、viewをaddSubviewすれば、viewは保持してくれるから後は知らんってできるけど、View Controllerは一緒には保持してくれないので、保持する必要がある
0417名称未設定
2014/03/03(月) 19:06:26.08ID:3XXYgs5g0やっぱり、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も同様)
0418名称未設定
2014/03/03(月) 19:14:27.66ID:8On5UDHM0何の会社なんだかw
0419名称未設定
2014/03/03(月) 19:36:50.16ID:xsD4KnwQ0ここのTransitionControllerを使うとか?
http://stackoverflow.com/questions/8146253/animate-change-of-view-controllers-without-using-navigation-controller-stack-su
0420名称未設定
2014/03/03(月) 20:49:33.64ID:GUbnuXQv0ID:3XXYgs5g0
ID:xsD4KnwQ0
ありがとうございます。こんなに考えて頂けるとは思っていませんでした。
色々試してみます。
>>409
A→B→Aならdismissでいいんですが、
A→B→C→Aの人とかA→C→B→C→Aと進む人だって考えられるので、dismissは使えないかなと思っています。
0421名称未設定
2014/03/03(月) 21:02:27.51ID:kgJxsc4l0- (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
0422名称未設定
2014/03/04(火) 02:27:49.26ID:MTayrOWdiメソッドの実装についてです。
戻値がない場合、最後は
[変数 メソッド]かドット構文のアクセスで
終わりますよね。
戻り値がある場合は例えば、-(nsstring*)メソッド{
Nsstring *変数=[変数 メソッド]
と言った形で代入する形になると言うことで
正しいですよね?
0423名称未設定
2014/03/04(火) 02:54:08.34ID:tDEgXXjb0メッセージ送信の普通の書き方なので何を言ってるのか読解できません。
「最後は〜終わりますよね」←(何が)
「戻り値がある場合は」←(returnの話ではなくて、インスタンスのプロパティに数値を入れる話でしょうか?)
0424名称未設定
2014/03/04(火) 03:44:19.37ID:8geA+0EO00425名称未設定
2014/03/04(火) 03:57:47.18ID:xh7HNgEY0>>422
メソッドの実装の話なら
- (void)xxxxのvoidは戻り値なし(呼び出しだけ
- (NSString *)yyyyはreturnで呼び出し元に何かしら処理したNSStringを返す
プロパティに入れて終わるかどうかなんて作りたいメソッドの内容次第だしな
クラス内のメンバ変数に値代入して終わることもある
他のメソッドを参考に※こんな作りもあるのか※を学ぶのをオススメするよ
0426名称未設定
2014/03/04(火) 04:08:24.69ID:tDEgXXjb0メッセージをメソッドと言ってるわきゃないし
メソッドとかいう言葉を使う言語を知ってる人間が
return知らないわけがないし
さらには釣りにしてもイミフ過ぎるというこの。
0427名称未設定
2014/03/04(火) 06:19:30.85ID:x5RYyB9H0あー意味わかる。それで正しい。
メソッドは -(NSString*)メソッド{ return ストリング; } の形に対して
メッセージ式は NSString *変数=[変数 メソッド]; の形か、[変数 メソッド]; でもいい。
戻り値は受け取らなくてもいい。
ドット構文でもこの形になるよ(ゲッター)
0428名称未設定
2014/03/04(火) 08:49:57.29ID:06S+pgMtP0429名称未設定
2014/03/04(火) 09:20:54.68ID:MTayrOWdi以外の場合しか使ったことないんです。
他の場合があるのでしょうか。
レシーバはクラスや変数、プロパティ
辺りを利用したことはあります。
0431名称未設定
2014/03/04(火) 13:58:05.44ID:QvOgiZvp0>>420 です。
いらないかもしれませんが、一応どうするか報告させていただきます。
[self addChildViewController:VC];
[self.view addSubview:VC.view];
[VC didMoveToParentViewController:self];
[self transitionFromViewController:VC toViewController:VC ... ];
ここらへんのをうまく使ってできました。
回答して頂いた方々ありがとうございました。
0432名称未設定
2014/03/04(火) 14:46:35.68ID:Lni7sFEG0if([[segue identifier] isEqualToString: @"showDetail"])
{....}
とあります。
この[segue identifier] として設定されている筈の行く先のIDとしての @"showDetail" は、多分ディテールビューコントローラ中か、そのストーリーボードの中だろうと思って、検索やインスペクタで探したんですが見つけられません。
どこで設定されているのでしょうか?
0434名称未設定
2014/03/04(火) 15:50:59.55ID:vqx6ojgR00435名称未設定
2014/03/04(火) 16:11:48.19ID:Lni7sFEG0行き先と云うよりも、移動そのものですかね。知識不足でした。ありがとうございました。
0436名称未設定
2014/03/04(火) 16:59:49.03ID:FrwVabsC0- (id)initWithNibName:(NSString *)nibName bundle:(NSBundle *)nibBundle
Bundleで設定するパスってどうやって決まるんでしょうか。
プロジェクト内に持ってる事はわかってるんですが、どこに配置されるか不明です。
0437名称未設定
2014/03/05(水) 01:06:38.39ID:Ammfezfv0アプリケーションバンドルの直下。余計なことをしなければ
てか、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の中身を見れば理解できるだろう
0439名称未設定
2014/03/05(水) 01:13:55.00ID:Ammfezfv0NSBundle *hogeBundle = [[NSBundle mainBundle] pathForResource:@"Hoge" ofType:"bundle"];
足りないっ
NSBundle *hogeBundle = [NSBundle bundleWithPath:[[NSBundle mainBundle] pathForResource:@"Hoge" ofType:"bundle"]];
0440名称未設定
2014/03/05(水) 19:08:11.74ID:h/FhwZon0セクション数0。セル数2としたのに
以下の画像のように無駄な線が消えません。この部分を空白にたいなのですがどうすればいいのでしょうか。
色々探しても見つかりません
http://uploda.cc/img/img5316f71fc6065.png
0441名称未設定
2014/03/05(水) 19:13:26.33ID:2n5ihlgx0空のヘッダかフッタ追加してみ
0442名称未設定
2014/03/05(水) 19:35:39.69ID:h/FhwZon0ヘッダーは元々一つつけてます。(画像見えづらいですが・・)
//section番目の名前を返す
-(NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section{
if(section==0){
return @"目標";
}
else return NULL;
}
空のフッダー?以下のように一応して追加してみましたが特に変化ありませんでした。
でも・・・
styleをUITableViewStylePlainにしたら望み通りのビジュアルになりました。
0443名称未設定
2014/03/05(水) 20:08:50.59ID:l4fePvBx00444名称未設定
2014/03/05(水) 20:18:42.65ID:Xm0RHRHn0一般的にはどのような手段をとればいいでしょうか
NSURL*url=[URLList objectAtIndex:0];
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
[manager GET:url parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {
//通信が終われば次の通信を開始したい
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
}];
0445名称未設定
2014/03/05(水) 20:52:12.18ID:3DEKzcR80アカウント情報(使用しているメールアドレス、サーバー名等)を取得することは可能でしょうか?
0446名称未設定
2014/03/05(水) 20:54:48.75ID:l4fePvBx0同期って、単に順番に一個ずつでええんやな?
- (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ってなんのこっちゃと思ったで
0448名称未設定
2014/03/05(水) 21:11:29.10ID:3DEKzcR80返信ありがとうございます。
Line等のアプリでメールアドレスの認証処理があるのですが、
それをなんとか実装できないかと思いまして。
簡単に言うと
メールを送信する
↓
認証番号が記述されたメールが返ってくる
↓
認証番号を入力するとメールがサーバーに登録される
という処理です。
0449名称未設定
2014/03/05(水) 21:17:10.48ID:l4fePvBx0ようはアプリからユーザのアカウントでメールを送れればいいんでしょ?そういうのは必要だろうからと当然あるよ
MFMailComposeViewControllerとか
0450名称未設定
2014/03/05(水) 21:23:11.87ID:l4fePvBx0メール「アドレス」をサーバに送信する
↓
認証番号が記述されたメールがサーバから送られる
↓
認証番号を入力しサーバに送信すると 正規なメールアドレスとして認められ サーバーに登録される
じゃないの?
0451名称未設定
2014/03/05(水) 21:25:10.83ID:3DEKzcR80MFMailComposeViewControllerだとmodalでメーラーが起動しますよね?
それだと本文の認証番号がユーザーに見えてしまいます。
なのでメールアドレスが適当でも認証番号をユーザーが取得できることになると思います。
その他の方法だと公開されているMailCoreなどのライブラリを使用する
という方法があるのですが、これだとメールアドレス、サーバー名、ポート番号などの情報を
ユーザーが入力しないといけないです。
もし、iPhoneからメールアドレス、サーバー名、ポート番号などの情報を取得できればライブラリを
使用して実装できるのではと思ったのですが…
0452名称未設定
2014/03/05(水) 21:28:22.13ID:3DEKzcR80そうですよね。
わかりました、ありがとうございました。
0453名称未設定
2014/03/05(水) 23:24:59.60ID:Z7807s+x0使用回数の制限を回避するため、Google map JavaScript APIを使用してテキスト検索結果のを得て、GMSMapviewに表示することは可能なんでしょうか?
もしくは、代替手段として使用回数制限に引っかかった場合はMapKitから得た検索結果を表示することも考えています。
0454名称未設定
2014/03/06(木) 04:03:42.51ID:wge9yPdy00455名称未設定
2014/03/06(木) 13:12:57.95ID:WIMiaPGh0元々公開しているアプリで、公開しているものはそのままで今回のバージョンアップ版を消したいです
よろしくお願いします
0456名称未設定
2014/03/06(木) 16:58:29.06ID:WIMiaPGh0BinaryDetailsのReject This Binaryから行けました
お騒がせしました
0457名称未設定
2014/03/07(金) 17:13:46.87ID:PAkBoakj00458名称未設定
2014/03/07(金) 18:04:07.37ID:uC0xrHQv0メインコンテンツはContainer View内でやることにし、Container Viewのframeをちょっと変えれば簡単にできそう
だが、そんなUI気持ち悪いからやめた方がいいと思う
0459名称未設定
2014/03/07(金) 23:14:15.70ID:NbOpQ7Cv00460名称未設定
2014/03/08(土) 17:45:16.65ID:y9M1q5uA0自作アプリケーションから既製アプリケーションを起動させたいと思っております。
例えば、メールアプリへメールの本文情報をURLスキームで渡して起動するまでは
自作アプリで制御できるのですが、その後、自作アプリへシームレスに戻すことが
出来ません。
最悪、
自作アプリ→既製アプリ起動→5秒後に自作アプリへ自動復帰
でもかまわないのですが、方法はあるのでしょうか?
そもそも既製アプリが立ち上がった段階で、自作アプリへの復帰は
出来ないものでしょうか?
ちなみに、自作アプリ→自作アプリ2→自作アプリへの復帰は
URLスキームで可能でした。
どなたかお知恵をおかし頂ければ幸いです
0461名称未設定
2014/03/08(土) 17:49:52.11ID:aN0GpTEs00462名称未設定
2014/03/08(土) 18:32:18.82ID:PImG6bKu0既製アプリってのがiOS純正アプリってことなら無理じゃね
他人(他者)がつくったアプリってことなら例えば検索ハブってアプリが
検索ハブ -> 大辞泉 -> 検索ハブ って感じでできてる
やり方は力になれん
0463名称未設定
2014/03/08(土) 18:33:27.07ID:PImG6bKu00465名称未設定
2014/03/08(土) 23:51:02.27ID:TT9RAzuL00466名称未設定
2014/03/09(日) 00:45:40.91ID:pce9rx+WI上記UIViewの子クラスに対して、NSTimerで定期的にsetNeedsDisplayを呼び出して
描画したいんですが、drawRectがまったく呼ばれません。
ScrollView上のUIViewはdrawRectが呼ばれないという制限などがあるのでしょうか?
ここ3日くらいハマっててとても困っています。
0467名称未設定
2014/03/09(日) 02:44:06.15ID:x5Bm+sYJ0ない。そんな制限があったらdrawRectなんて使えない/存在意義が無いやん
特定のクラス(UIImageView)ではdrawRectそのものが呼ばれないってのはあるがそれとは別だしな
UIScrollViewとUIViewの子クラスだけの新しいプロジェクトで試してみたら?
0468名称未設定
2014/03/09(日) 06:59:35.67ID:/SJKhM6z0NSTimer *timer = [NSTimer timerWithTimeInterval:0.3 target:myView selector:@selector(setNeedsDisplay) userInfo:nil repeats:YES];
[[NSRunLoop currentRunLoop] addTimer:timer forMode:NSRunLoopCommonModes];
0470名称未設定
2014/03/09(日) 14:33:07.04ID:0IsgJrYj0借りにあったとしたらそれらをコード内で取得することは可能ですか?
例)
AさんとBさんのiphoneではそれぞれ違う数字が出力されるようにしたいです。
0471466
2014/03/09(日) 15:00:30.85ID:pce9rx+W0ありがとうございます。
UIScrollViewのコンテンツはUIImageViewを祖先にもっていたのですが、UIViewに変更したところ drawRectが呼ばれるようになりました。
0472名称未設定
2014/03/09(日) 15:19:50.00ID:hETMBEq30udidはもうiOS7から使えないから(エンタープライズアプリで使ってるのだが・・・)
UIDevice の identifierForVendor を使うのでいいかと
0473名称未設定
2014/03/09(日) 16:11:17.09ID:/bOFmtQA0オープンソースだと、
https://github.com/akisute/UIApplication-UIID
てのがある。
0475453
2014/03/09(日) 18:54:35.50ID:uqYjOeE00結局googlePlaceAPIはiOSに対応していないことが分かりました。ご迷惑をおかけしました。
0476名称未設定
2014/03/09(日) 20:24:16.32ID:m/ffx+iD0mac アドレスとかいうやつと素人。
mac アドレスのことを Wi-Fiアドレスといえというのがアップル様の教え。
NSString *uuid = [[NSUUID UUID] UUIDString];
これで xcode が自動でつくるアプリのフォルダ名みたいなランダムな文字列が取得できる。
0477名称未設定
2014/03/10(月) 00:06:18.06ID:s7te88IH0単にWebAppAPIなんだからiOSがあとか関係無さげだが。ライセンス的にどうなのか知らんが
まあ「使用回数の制限を回避」なんて発想で使おうとするのは間違っていると思うが
0478名称未設定
2014/03/10(月) 02:54:30.02ID:4mUN8V6E0ガワが同一でWebからデータ取ってきて表示するだけのアプリなんだけど。
0479453
2014/03/10(月) 07:49:30.95ID:W6y1LJrs0https://groups.google.com/forum/#!topic/google-places-api/Jlm15dG7eMA ;どうもiOS用のKeyではうまくいかず、Web用の物を用いればいいそうですがiOSからも可能なんですかね? 自分で試してみてダメだったのでjavascriptで対応してしまいました
0480名称未設定
2014/03/10(月) 10:58:01.43ID:s7te88IH0https://developers.google.com/places/documentation/autocomplete?hl=ja
https://developers.google.com/places/faq?hl=ja#why_do_i_keep_receiving_status_request_denied
UIとして Android キーと iOS キー を作成/区別するのがあるが、まだ Android キーと iOS キー はサポートしてないから、AndroidとiOSアプリでもブラウザ キーまたはサーバー キーとして作成してそれを使えってことだろ
0481名称未設定
2014/03/10(月) 11:03:33.97ID:hNCFJRWh0iPhoneを指でつまんでその中にスクリーンショットがあるというのがありますが
そういう加工する定番アプリとか素材集って
あるんでしょうか?
興味があるので教えてください。
0482名称未設定
2014/03/10(月) 12:50:51.12ID:uqlu9C9R0NSData *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
0483名称未設定
2014/03/10(月) 13:34:32.49ID:EYcoZMkm03行目のはできるの?
>-[Hoge encodeWithCoder:]: unrecognized selector
なんだから
NSCodingプロトコルに準拠する必要があるのではないかな。
0484名称未設定
2014/03/10(月) 13:46:58.17ID:uqlu9C9R0返答ありがとうございます。
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:hoge];
でも駄目でした。
>NSCodingプロトコルに準拠する必要があるのではないかな。
そのようですね。
NSCodingというのがよくわからないので調べてみます。
ありがとうございました。
0485名称未設定
2014/03/10(月) 15:18:59.61ID:73N9F7RJ0別の画面へ移動できますがあの仕組みはどうなってるんでしょうか・・・
画面移動する際にviewcontrollerも入れ変わっているのでしょうか?
0486名称未設定
2014/03/10(月) 15:37:28.68ID:s7te88IH00487名称未設定
2014/03/10(月) 15:41:09.10ID:73N9F7RJ00488名称未設定
2014/03/10(月) 16:15:09.92ID:VVwOicY+0フレーム単位に画像を表示していくだけだし。
0489名称未設定
2014/03/10(月) 16:56:12.16ID:v+VWo/Tj0A4用紙にプリントさせるようにすると、
Segmented Controlの中が色で塗りつぶされて、
文字が判別できないようになるんですが、
これは仕方ないんでしょうか。
0490名称未設定
2014/03/10(月) 17:32:11.05ID:ggJvXnGj0たとえばカメラロールへの保存とかUIImageViewにsetする時とか
画面の向きをロックしてると起こらない
0491名称未設定
2014/03/10(月) 17:41:18.48ID:QebuC5ZN00492名称未設定
2014/03/10(月) 18:24:14.15ID:uqlu9C9R0iPhoneの電話帳からデータを取得するとき、
初回だとこのアプリからのアクセスを拒否するか許可するかのアラートが表示されるのですが、
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;
}
0493名称未設定
2014/03/10(月) 19:05:54.84ID:s7te88IH0ABAddressBookRequestAccessCompletionHandler中でと、ABAddressBookRequestAccessWithCompletion直後にNSLogしてみると、非同期のようだけど
ABAddressBookRequestAccessWithCompletionの直後が先に行なわれる。それだと、常時statusに取得したいのが入らずに(ごみを?)返していることになる
0494名称未設定
2014/03/10(月) 20:02:37.35ID:uqlu9C9R0返事ありがとうございます。
そうですかメソッドを- (void)getAuthorizationStatusにして
ABAddressBookRequestAccessWithCompletion(addressBookRef, ^(bool granted, CFErrorRef error) {
//ここで処理をする
});
このblockの中で処理をした方が良さそうですね。
0495名称未設定
2014/03/10(月) 23:06:49.95ID:gXfvWf//0そんな感じで、アプリから 何かしらのデータを 指定のGoogleスプレッドシートに送信、みたいな事はできますか。
もしよければ方法も教えて下さい。
0496名称未設定
2014/03/11(火) 02:44:24.11ID:UPHw5ZSm0カスタムクラスのもつ独自のプロパティは失われますか?
0497名称未設定
2014/03/11(火) 02:56:18.36ID:q30PSQXn0だがカスタムクラスにキャストして戻さないとそのプロパティにはアクセスできないよ。
0499名称未設定
2014/03/11(火) 10:15:53.83ID:q30PSQXn0General->Deployment Info で Device Orientationを設定してるか?
0500名称未設定
2014/03/11(火) 10:32:51.66ID:sRBvZ39l0してます
あとshouldAutorotateみたいなやつも全てNOを返しているんですがuiimageviewにuiimageを動的にセットすると勝手に回転します…
0502名称未設定
2014/03/11(火) 14:09:49.83ID:yPoeeuJ80スクリーンの大きさ、できればiphone外形も等身大で印刷できる
テンプレートpdfとかありませんでしょうか
0503名称未設定
2014/03/11(火) 14:22:22.76ID:VkdCBdEJ0iPhone実機写真をサイズに合わせて縮小(拡大)して、スクリーンの部分をくり抜けばええやん
手書きなんだから単に気分の問題でしかないんだろうから
0504名称未設定
2014/03/11(火) 18:53:40.37ID:2UWRR/fz0Images.xcassetsをクリックして、それっぽいアイコンの形の点線の所にそれに適したサイズの画像を
ドラッグすればいいんですよね?
0505名称未設定
2014/03/11(火) 19:01:47.00ID:2UWRR/fz00506名称未設定
2014/03/11(火) 20:32:15.81ID:bnjOBCda0それで合ってます
画像サイズをお間違いの無いように・・・
質問です
SpriteKitを使っているのですが、
SKActionでSEを鳴らしている最中にタイマーなどの割り込みが入ると、
それ以降音が止まってしまいます。
割り込みが来た後、音を再開させるにはどうしたらいいでしょうか?
よろしくお願いします。
0507名称未設定
2014/03/11(火) 23:34:27.84ID:SHL+mWl50自分は大学で非情報系の学問を専攻しており、まわりにソフトウェア開発をしている友達がいません。(元々友達も少ないのですが)
独学でぼっちの状態でObjective-Cを勉強してきました。
アプリ開発もすこし落ち着いてきたところで、自分と同じような境遇の人と話したいなと思ってます。
iPhoneアプリ開発等に関して議論する場は2ちゃんねるしか知らないので、それ以外で知識を共有できるようなコミュニティってありますか?
0508名称未設定
2014/03/12(水) 00:25:10.52ID:a/3dgfju0方眼用紙にディスプレイのワクだけボールペンで書いて、中身はえんぴつでデザインしてる。
世の中みんなこういうふうにやってるものと思ってたわ。
0509名称未設定
2014/03/12(水) 00:40:41.14ID:YjUBVkrH0あれ、よく読むと原寸よりけっこう大きかったので買うのやめた経緯が
0510名称未設定
2014/03/12(水) 01:43:05.72ID:hHmxfAMI00511名称未設定
2014/03/12(水) 01:51:38.06ID:HCYDrpQo0BGMみたいな長い音なんじゃないの?
AVAudioPlayerとか使えば割り込み復帰も自動になるんじゃないかな。
SpriteKit使ってないからわからんけど。
0512名称未設定
2014/03/12(水) 02:05:13.16ID:tg88wWfo0このデリゲートの動作に10秒以上かかるとして、
この間にアプリがユーザーに立ち上げられたかどうかを取得しようとしています。
しかしapplicationStateは立ち上げた後もbackgroundを示し、変化を認識してくれません。
立ち上げたあとは全ての動きがこのデリゲートの後回しになり、終わるまで動きません。
どうにかデリゲート中に割り込むいい方法はないでしょうか?
0513名称未設定
2014/03/12(水) 02:24:50.59ID:HCYDrpQo0cancelLocalNotification:
0514名称未設定
2014/03/12(水) 02:33:52.28ID:tg88wWfo0回答ありがとうございます。
cancelLocalNotification:は予約したものをキャンセルするもので、
すでに実行中のものは違うと思います。
問題は、そのようなキャンセルをするかどうかのきっかけがうまく取得できないことなんです。
0515名称未設定
2014/03/12(水) 04:00:08.87ID:HCYDrpQo0それLocalNotificationの問題じゃないんじゃね?
ようは10秒かかる動作を途中でキャンセルしたいってことだろ?
それなら自分でキャンセルできるじゃん。
立ち上げた時にキャンセルしたいなら applicationWillEnterForeground: でいい。
0516名称未設定
2014/03/12(水) 04:49:11.78ID:Cggk25Pp0バックグラウンドでローカル通知のdidReceiveLocalNotificationを動かしているのがメインスレッドだと、終わるまでバックグラウンドだろう
それが終わってからフォアグラウンドになりましたあ通知(デリゲート)とかフォラグラウンドにするための処理にしかならないやん
デリゲート中に割り込むのにデリゲートの処理(10秒とかかかるやつ)は別スレッドにさせるたらどうかと思うが、システム的に許しているのかは知らない
0517名称未設定
2014/03/12(水) 06:14:24.28ID:fxpbTEBv00518512
2014/03/12(水) 07:54:11.22ID:tg88wWfo0回答ありがとうございます。
自己解決しました。
didReceiveLocalNotificationの中で
beginBackgroundTaskWithExpirationHandlerを使えばその他の操作も受け付けてくれました。
0519名称未設定
2014/03/12(水) 08:05:37.33ID:tg88wWfo0ライブラリもあるけど、自作だったらAVFoundationでできるはず。
自分には難しそうだった。初心者向けではないと思う。
0520名称未設定
2014/03/12(水) 08:58:47.22ID:upvqgisC0目的によるけど、iOSでは(脱獄しない限り)他のアプリのスクリーンショット(当然、録画も)は撮れないよ。
0523名称未設定
2014/03/12(水) 12:46:40.20ID:HCYDrpQo0アプリがバックグラウンドに/フォアグラウンドに回る時と、
割込に回る時/戻る時でAVAudioSessionをactive/deactiveしないとまずいらしい。
参考 http://iknowsomething.com/ios-sdk-spritekit-sound/
0525名称未設定
2014/03/12(水) 14:07:47.89ID:qraSSfEt0みたいな書式を見たのですがこの構文の意味を教えてください。
0527名称未設定
2014/03/12(水) 14:12:10.75ID:2W65ljz802ちゃんよりオープンになるかもしれないが、
Twitterなら似たような人たちと話が出来るよ。
0528名称未設定
2014/03/12(水) 15:26:07.97ID:yh/Czj6w0x-codeでの作り方ありますか?
画面をスリープさせたいんです・・
コード分かる人いたらよろしくお願いします。
0529名称未設定
2014/03/12(水) 15:33:52.61ID:MvSIymlQ0Sleepに入るのを止めたい、Sleepに入るのを知りたいというのはアプリに有用だが、システム環境設定にありシステムでやっているそれをアプリでやる意味が無い
ので、無いよ、たぶん
0530名称未設定
2014/03/12(水) 15:41:39.16ID:yh/Czj6w0強制的にスリープにすることは今のところ不可能ってことですか。。。
0532名称未設定
2014/03/12(水) 15:48:22.23ID:MvSIymlQ0iPhoneの右上にあるボタンを押してもらえば/押せばええやん
そんなに必要なら絵で矢印で右上指してとかw。ああiPadだと遠いとか?
0533名称未設定
2014/03/12(水) 23:43:47.64ID:/12BYTBo0さっぱり思いつかない。
0534名称未設定
2014/03/13(木) 00:18:01.05ID:Jo53QgB3i0535名称未設定
2014/03/13(木) 10:10:31.85ID:MQXgIcMl00536名称未設定
2014/03/13(木) 11:29:04.23ID:wGbttvyY0エクセルだとコントロール+Z
みたいな。
自分で設定するのでしょうか?
調べてもイマイチでてこないんですよね・・・
0537名称未設定
2014/03/13(木) 11:38:02.82ID:iTmce/sZ00538名称未設定
2014/03/13(木) 11:46:07.29ID:wGbttvyY00539名称未設定
2014/03/13(木) 11:50:42.38ID:MQXgIcMl00540名称未設定
2014/03/13(木) 11:54:15.36ID:MQXgIcMl00541名称未設定
2014/03/13(木) 12:02:33.02ID:7cuQxxCj0Xcodeのundoはコマンド+Z
0543名称未設定
2014/03/13(木) 14:12:05.39ID:pPf2YPl90サンキューカッス
0544名称未設定
2014/03/13(木) 18:26:20.91ID:21muYoer0NSUserDefaultsに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を保存するうまい方法は何かありませんか?
0545名称未設定
2014/03/13(木) 18:39:35.79ID:JAKM+vVz0Class Reference 見れば書いてあるけど NSUserDefaults は property list object か
property list object の入ったコンテナしか保存できない
View を保存したけりゃシリアライズの方法を自分で決めて NSData にして保存すればいい
シリアライズは NSCoding プロトコルを実装すればいい
0546名称未設定
2014/03/13(木) 18:44:48.24ID:JAKM+vVz00547名称未設定
2014/03/13(木) 18:52:05.59ID:i6wGrjl20ttp://ninjinkun.hatenablog.com/entry/2012/10/20/122257
0548名称未設定
2014/03/13(木) 19:22:47.42ID:iTmce/sZ0嘘情報流してすまんかった
0549名称未設定
2014/03/13(木) 19:47:38.52ID:7cuQxxCj0theViewをNSDataにして保存、復元はNSKeyedUnarchiverかな。
id data = [NSKeyedArchiver archivedDataWithRootObject:theView];
[[NSUserDefaults standardUserDefaults] setObject:data forKey:@"theView"];
0550名称未設定
2014/03/13(木) 20:02:18.14ID:5kitm/Qv0そもそもuserDefaultsにUIView自体を保存するべきじゃない。
画像なら画像はドキュメントに保存してそのパスだけ保存しておけばいいし、
各種設定からなるUIViewなら設定を保存しておけばいい。
UIView自体を保存しなければいけないってのはかなり特殊な事例になる。
0551名称未設定
2014/03/13(木) 20:06:05.21ID:7cuQxxCj00552名称未設定
2014/03/13(木) 21:01:52.14ID:YuZ3jTEq0ここでキャンセルされた場合についての質問です。
キャンセルされてしまった場合、次回起動時にはダイアログが出ないですが、
どうしても位置情報を使って表示したいビューがあるので、毎回起動時に確認したいです。
[CLLocationManager locationServicesEnabled] で位置情報サービスが有効かどうかは
確認できるのですが、下記が分からないでいます。
・設定画面の呼び出し方法
・初回はデフォルトの確認画面が出るので無視する方法
0553名称未設定
2014/03/13(木) 21:13:40.19ID:av654Pkl0無理。ユーザーのプライバシーを守るためにそうなってるんで、それが嫌ならiOSアプリ作るのやめなよ。
0554名称未設定
2014/03/13(木) 21:29:20.62ID:YuZ3jTEq0無理矢理位置情報サービスをオンにするわけじゃなくて、ダイアログを出して
ユーザーの意思で設定画面を出すのはアリだと思うんですよ。
0555名称未設定
2014/03/13(木) 21:49:48.15ID:H/Kfyp2c0画像サイズが大きいと強制終了します・・・解決法はありませんか?
例としては、パノラマ画像とかです。
というか普通の写メでも保存するのに数秒かかったりして画像が一時停止するのもちょっと困ってます
0556名称未設定
2014/03/13(木) 22:00:32.31ID:94ViCSyE00557名称未設定
2014/03/13(木) 22:14:47.58ID:av654Pkl0Mac初めてなら、この連載を読むといいかも。
http://stocker.jp/diary/mac-textedit/
0558名称未設定
2014/03/13(木) 22:20:10.20ID:av654Pkl0ダイアログが出るのは「初回起動時」ではなく、「最初に位置情報を要求した時」だから、
その前に位置情報がどうして必要で、どう使うつもりなのかをちゃんと説明すればいい。
0559名称未設定
2014/03/13(木) 22:45:00.10ID:bHWnSrMQ0アプリ起動時に
kCLAuthorizationStatusNotDetermined
だったら、そのまま何もしない。システムのAlertにまかせる
kCLAuthorizationStatusDenied
だっらた、「こういう機能で必要なので、ローケーション使えるようにした方がいいっすよ」というAlertを独自に出す。といっても毎回じゃ>>556のようになるだろから、3回までとか
0560名称未設定
2014/03/13(木) 22:46:37.56ID:21muYoer0たくさんのレスありがとうございます。
まだまだ初心者なので、わからないことだらけですが一つ一つ調べて試してみます。
ご教授していただきありがとうございました。
0561名称未設定
2014/03/14(金) 00:18:37.98ID:FiNaD0c60BuildSettingsのOtherLinkerFlagsにフラグが設定できなくて困ってる
�@OtherLinkerFlagsの項目右側をダブルクリックして、ウィンドウ表示させる
�Aウィンドウ左下の+を押して項目追加
�Bフラグを記述、Enterキー押す
これで手順あってる?Enterキー押しても全然追加されないわ
OSはOSX10.9.1で、Xcodeは5.0.2
0562名称未設定
2014/03/14(金) 00:41:29.11ID:fNSz8uVu0教えていただいた方法をとりあえず一つ一つ他名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];
つまり、タップしたビューを保存してそれを改めて取り出した上で、タップしたビュー自身のプロパティを変更したいのですが...
意図が伝わりにくい文章で申し訳ないです。また何度も図々しく質問してごめんなさい。
教えていただけたら幸いです。
0563名称未設定
2014/03/14(金) 00:55:01.13ID:9CtK2kfs0AをremoveFromSuperviewしてBをaddSubview.
0564561
2014/03/14(金) 01:13:51.60ID:FiNaD0c60▼Other Linker Flags
Debug
Any Architecture | Any SDK
Release
Any Architecture | Any SDK
俺Other Linker〜のとこに追加しようとしてたんだけど、
DebugとReleaseのAny〜ってとこに追加してったらよかったんだな
0565名称未設定
2014/03/14(金) 03:53:15.23ID:RkLta0cJ0ObjectiveCとSpriteKitの本を読んだのですが、
いざ作るとなるとわからない事がどんどん出てきてどうすればいいかどうか
わからない状態です。どういう順で学んでいけばいいのでしょうか
読んだ本はこの2冊です。
Sprite Kit iPhone 2Dゲームプログラミング
Xcode 4ではじめるObjective-Cプログラミング
0566名称未設定
2014/03/14(金) 06:17:35.32ID:sudRxZBD00567名称未設定
2014/03/14(金) 07:14:00.54ID:yDDa0lwh0だからviewを保存しちゃ駄目だってば。
>>566
それだと>>562みたいに根本的に方向性が間違ってる場合にはどうしようもない。
回り道のようでも、ちゃんとしたプログラミングの基礎からしっかり勉強するのが、
結局は一番の近道だと思うけどなぁ。
0568名称未設定
2014/03/14(金) 07:55:13.76ID:9CtK2kfs0あのさ、その「ビューを保存しちゃだめ」ってのはどこのルール?
なんのためにUIViewはNSCodingを採用してるの?
0571名称未設定
2014/03/14(金) 09:00:41.65ID:/tM15zCG0spritekitは画像表示やら動きを便利にするものだからね。
勉強するのは後回しさ。
まずはviewとviewcontrollerあたりをマスターしろ。
0572名称未設定
2014/03/14(金) 09:57:18.21ID:1+PvpMxJ0"標準的な画像は8bit256階調でRGB3色を表しており各ピクセルの色は32bitで表される
そして本来24bitで済む余った8bitの部分をそのピクセルの透明度として定義したのがアルファチャンネルである"
とか敵のアルゴリズムが当たり判定がとかそういうところなら自分が作りたいジャンルの
"○○ゲームを作る"系のゲームプログラミングの入門書を読む(他言語でもよい)
数冊眺めれば他言語でも共通の言語外の部分を説明しているから。
0573名称未設定
2014/03/14(金) 12:43:23.14ID:fNSz8uVu0ありがとうございます。消去して新たに追加するということですね。
>>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{ }
0574名称未設定
2014/03/14(金) 12:44:38.32ID:fNSz8uVu0このようにして作成したviewをタップしたときに呼び出すようにしてあるviewTap内の定義で悩んでいます。
このviewTap内で、一回目のタップしたviewと2回目にタップしたviewを比べたいのです。
一回目にタップしたviewそのものを保存するためにいろいろ自分なりにやってみたのですが、基礎的な知識が足りないこともあり、うまくいきません。
これをviewController内で行うにはNSMutableArrayに一回目にタップしたviewを入れて、sender.viewと比べることでうまくいきました。
どのように定義するのが良いでしょうか?
0575名称未設定
2014/03/14(金) 13:26:12.12ID:9CtK2kfs0こんなところかなあ。
(1)二つのView(A, B)の比較はViewControllerでやるのが設計的に適切ではないか。
(2)NSUserDefault(preferenceディレクトリ)は、基本的にplistを保存する場所なので、
NSFileManagerでdocument等に保存したほうが良いだろう。(つかなんで保存してるの?)
(3)比較するのがUIColorならUIColorを保存するだけで良い。
(4)UIColorの比較は -getRed:green:blue:alpha: で取得したRGBA値を比較してるのか。
0576名称未設定
2014/03/14(金) 15:13:07.88ID:sudRxZBD0>>562は方向性が間違ってるという指摘を受けられそれによって適切に修正できるんだから
全然どうしようもなくないじゃん、言葉の使い方が間違ってるよ
基礎をしっかり学ぶのは大切だがプログラミング自体素人がイキナリそれをやるのは
イメージも追いつかず拷問だから大体分かってきてからで良い
質問なんて大したコストかからないんだからちょっとぶつかったらさっさと聞けばいい
0577名称未設定
2014/03/14(金) 15:56:15.14ID:h9Z4yIGV0カスタムクラスに判定させると他にタップした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;
}
0578名称未設定
2014/03/14(金) 16:42:14.69ID:ygIPchA70_sound = [SKAction playSoundFileNamed:@”sound01.mp3"
waitForCompletion:NO];
でサウンドを追加、音もなりますが、
iOS純正アプリのタイマーの割り込みが入った直後、
音が鳴らなくなります。
割り込み終了後に音を鳴らすようにするにはどうすればいいのでしょうか?
ご教示どうかよろしくお願いします。
0579名称未設定
2014/03/14(金) 16:44:02.52ID:9CtK2kfs0いろんなやり方があるが、俺は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: を実装すること
}
0582名称未設定
2014/03/14(金) 17:38:15.58ID:ygIPchA70「あ、そうだ、iOS純正サンプルコードの”Adventure”ならサウンドもちゃんとなっているだろう」
と思い、調べてみたところ、
タイマーの後で普通に音が鳴らなくなりました。
>>523のサイトには”SpriteKit自体のバグ”ということも書いてあり、絶望しました。
>>523の方法でちゃんとバグ修正できますでしょうか?
0583名称未設定
2014/03/14(金) 17:46:18.93ID:95F6gQfw0MacPro 2010 midの映像をiMac 2010 midの画面へ
ターゲットディスプレイモードで表示したいと思います。
接続ポートは両者ともmini displeyportなので単にケーブルを買えば
良いのかと思いますが、長め(2m以上)の物が見つかりません。
サード製の1.5m+延長ケーブルを買う金額を考えると
純正thunderbolt(2m)が買えそうなんですが、
上記の用途にthunderboltケーブルを使っても互換性は問題ないのでしょうか?
0584名称未設定
2014/03/14(金) 18:48:49.10ID:9CtK2kfs0今簡単にテストしたが、なんかだめだなw
タイマーの後でsetActive:YES しても音が出ない。
AVAudioPlayer使おう。こっちは大丈夫。
runAction: するかわりにplayer.currentTime=0にして、[player play]; すればいいんじゃね?
0585名称未設定
2014/03/14(金) 19:17:41.99ID:ygIPchA70レスありがとうございます!
わざわざテストしていただき本当に感謝です!
今試しています!
あとで結果報告いたします。
0586583
2014/03/14(金) 19:24:53.69ID:95F6gQfw00587名称未設定
2014/03/14(金) 20:01:41.25ID:ygIPchA70若干、連打時にほんの少しだけカクつくようになりましたが、
無事>>584さんの方法でタイマー割り込み後も動きました!
>>584さん、回答してくださった方々、本当にありがとうございました。
0588名称未設定
2014/03/14(金) 21:02:21.62ID:TcNVRqcK0itemとか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などの文字列が含まれているかという風にすればうまくいくと思うのですが
どうすればいいでしょうか?
0589名称未設定
2014/03/14(金) 21:39:08.47ID:VDilRHcN0あの手この手でくぐり抜けようという人いるが、
前スレで凹んだ人いたし、もう通さないんじゃないかな。
0590名称未設定
2014/03/14(金) 22:09:11.02ID:h9Z4yIGV0NSObject定義だからかなり幅広く使えるみたいだね。
ところでNSStringでも使えるみたいだけど、isEqualToString:との違いはなに?
今までずっとisEqualToString:使ってた。
0591名称未設定
2014/03/14(金) 22:38:35.50ID:d/OxLwvq0Special Considerations
When you know both objects are strings, this method is a faster way to check equality than isEqual:.
0592名称未設定
2014/03/14(金) 22:45:19.52ID:3uZb8cmU0広告収入的には最強だとは思うんだけどライバルが多すぎるね。
と言うか、ゲームアプリ並みに大企業が多い。
だからと言って違いをつけようとしても、あまり違いが作れない。
0595名称未設定
2014/03/14(金) 23:59:07.32ID:fNSz8uVu0何度も答えていただき本当に、ありがとうございます。
カスタムクラス内で一回目にタップしたviewと二回目にタップしたviewを比べたかったので、一回目にタップしたviewをとりあえず保存して、
その保存したviewと二回目タップのsender.viewで比べられないかと考えたから保存するということを考えたのですが、viewControllerのインスタンス変数等に入れて、
やったほうがよいのですね。
>>577
丁寧に答えていただきありがとうございます。
やはり、カスタムクラス内で行うのは難しいみたいですね。最初にカスタムクラスにviewControllerのdidLoad内で要素を入れた配列等をカスタムクラスで使用してみると
定義した要素が確認できなかったので使用できないのかなとは思ったのですが、そのようにするには他に管理するクラスが別に必要ということですかね。
>>579
わざわざ別のやり方を丁寧に教えていただきありがとうございます。
まだまだ勉強不足なので理解できない部分もありますが、一つずつ調べて参考にさせていただきます。
こんな素人同然な私の質問に丁寧に答えていただき、本当にありがとうございます。
0596名称未設定
2014/03/15(土) 00:59:11.86ID:43W79W8p0・Navigation Controllerの遷移時にNavigation Bar右端が灰色になる
・Table Viewで行をreloadしたときにセルの高さが変わると下部のToolbarの背景の透過率が100%になって表示がおかしくなる
んですけどどう対処したらいいんでしょうか
0597名称未設定
2014/03/15(土) 03:42:06.76ID:ShDQbuip0NSUserDefaultはやめといたほうがいいのでしょうか?
それでなのか原因はわかりませんがクラックされてタダで自分のアプリを使われてるという知り合いがいたもので気になります。
何を使うのがベストか教えてください。
0598名称未設定
2014/03/15(土) 04:11:33.27ID:0wrUl+Ub0アプリ売る事に力を注いだ方がいい。
0599名称未設定
2014/03/15(土) 04:34:30.84ID:Iv4LqT1u0オブジェクトの一致を比較するのがisEqualの役割
なので、NSMutableStringを使ってる場合に、isEqualだと想定外の動作になる場合があるよ、と補足
0601名称未設定
2014/03/15(土) 08:42:06.19ID:DqEC6lXI0濁点半濁点付きのひらがなカタカナがイコールと判定されないんで、
その場合はcompare: 使った方がいいかも。
0602名称未設定
2014/03/15(土) 12:16:24.82ID:ZrU9gGl000603名称未設定
2014/03/15(土) 12:32:17.74ID:DqEC6lXI0そりゃまずいっしょ。
0604名称未設定
2014/03/15(土) 13:03:16.31ID:IkpHgDqV00605名称未設定
2014/03/15(土) 13:08:33.44ID:VDmmF14Q00606名称未設定
2014/03/15(土) 16:05:20.16ID:Iv4LqT1u0あれ、すまん
>>599は大ウソぶっこいてた。
ので、>>599は忘れて下さい。
検証コード作って試したら、なんら問題なかった( ;´Д`)俺のアホー
0607名称未設定
2014/03/15(土) 17:51:23.03ID:ZEUqB0AP0hoge.clickedButton = [^(int index) {
if (index == 1) {
if ([weakDelegate respondsToSelector:@selector(deleteMethod)]) {
[weakDelegate deleteMethod];
}
}
} copy];
0608名称未設定
2014/03/15(土) 18:38:50.69ID:VDmmF14Q0ならないようにweakにしてんじゃね
delegateがインスタンス変数なら、インスタンス変数直接だと循環参照になるだろうが、
ブロック前でAuto変数にコピってそれをブロックで使えば循環参照にならないだろうから、別にweakでなくてもいいんだろうけどな
0609名称未設定
2014/03/15(土) 18:57:13.40ID:VDmmF14Q00610名称未設定
2014/03/15(土) 19:05:40.98ID:ZEUqB0AP0返信ありがとうございます。
すみません、weakDelegateの宣言が抜けてましたね
__weak id weakDelegate = delegate;
こうです。
ちなみに.hでは
@property (nonatmic, weak) id <hogeDelegate> delegate;
として.mでは
@synthesize delegateとしています
(nonatmic, weak)となっているからわざわざ
__weak id weakDelegate = delegate;
と書く必要ないということでしょうか?
0611名称未設定
2014/03/15(土) 19:25:28.30ID:DqEC6lXI0それより、blockをcopyして渡す必要があるのかな。
clickedButtonがhogeのプロパティならcopy属性付いてると思うけど。
0612名称未設定
2014/03/15(土) 19:37:27.74ID:ZEUqB0AP0返答になっているか怪しいですが
このclickedButtonは違うクラスのプロパティです
typedef void(^clickedButtonAtIndex)(int);
@interface MyAlertView : UIAlertView <UIAlertViewDelegate>
@property (copy) clickedButtonAtIndex clickedButton;
@end
UIAlertViewのデリゲート書くの面倒くさくてボタンのタップイベントをblockで
渡しています
つまり違うクラスです
返答になっていなければごめんなさい
0613名称未設定
2014/03/15(土) 19:44:05.88ID:DqEC6lXI0うん、copy付いてるね。そうじゃ無いと警告出るから。
なので hoge.clickedButton = ^(int index) { }; でいいと思うよ。
0614名称未設定
2014/03/15(土) 19:47:36.00ID:ZEUqB0AP0わかりました、ありがとうございました。
0615名称未設定
2014/03/15(土) 19:56:33.97ID:VDmmF14Q0ブロック内でインスタンス変数を使うと、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)が依存関係にあるならそうではないだろなということ
0616名称未設定
2014/03/15(土) 20:36:20.18ID:BT7kwJsz0UITextViewを作成し、全角10文字で折り返す幅に設定します。
下記(1)のテキストを入力したとき、(2)となることを期待していますが、(3)となります。(2行目の先頭のスペースが、文字自体はあるにも関わらず表示されない)
改行文字を入れれば表示はされるのですが、改行文字を入れず、自動改行で(2)となるようにしたいです。解決策をご存知の方がいましたらご教示ください。
※カーニング、リガチャを疑ってみましたが解決しませんでした。NSLayoutManagerを使ってみようかと思いましたが、調べてみてもイマイチそれらしいところに辿り着かず困っています。
(1)入力テキスト(□=全角スペース/■=全角文字)
□■■□■■■□■■□□■■■■■□□■
(2) 期待する表示
□■■□■■■□■■
□□■■■■■□□■
(3) 実際の表示
□■■□■■■□■■
■■■■■□□■
0617名称未設定
2014/03/15(土) 20:37:54.67ID:DqEC6lXI0あそうか、self->_delegateになっちゃうからまずいね。
>>614
やっぱり、__weak id weakDelegate = delegate;こうしなきゃだめだ。
0618名称未設定
2014/03/15(土) 20:58:23.71ID:ZEUqB0AP0__weak id weakDelegate = delegate;
とすることでhoge(.clickedButton)のAuto変数として使える
Auto変数は関数の中だけで存在するからこのblockの処理が終わるとweakDelegateは消える
ということでしょうか?
また、依存関係というのがわからないのですが
hoge(.clickedButton)を使っているクラスをAとして
hoge(.clickedButton)を宣言しているクラスはMyAlertViewですので
この場合依存関係は無いということでしょうか?
0619名称未設定
2014/03/15(土) 21:31:27.11ID:YNOkPK/N0__weak id weakDelegate = delegate;
単なるAuto変数。ブロックはAuto変数を自由につかえちゃったりするのが便利だよね?
Auto変数に値をコピてそのAuto変数をブロック内で使うことにより、気にしなければならないのはAuto変数に限られるってことなんだけど
んー、deallocされる場合/オーナーシップのことを考えればいいと思うんだけど。
オーナーシップを考えれば、一時的に循環参照になろうが、ちゃんとオーナーシップを手放すように(インスタンス変数で保持しているインスタンスが必要無くなればインスタンス変数をnilにするとか)すればとか
よく読んでいないけど、UIAlertViewのなんでしょ?仮にUIAlertViewをインスタンス変数に保持していても、Alertが必要無くなったらnilにするでしょ?とか
0620名称未設定
2014/03/15(土) 21:55:33.78ID:ZEUqB0AP0こんな感じで書いてるんですけど…
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];
}
}
0621名称未設定
2014/03/15(土) 22:28:26.51ID:YNOkPK/N0alertはAuto変数であなたのコード上ではオーナーシップを持っているのは無い
alertが存在し続けられるのは、[alert show]により、alert自身(?)が自らオーナーシップを持つことによる
Alertの表示が終了するとalert自らオーナーシップを放棄することにより、オーナーシップを持つものは無くなるだろう
で、alert自らオーナーシップを放棄しても他にオーナーシップを持っているのはそのコード上(だけ)では存在しない
よって、clickedButtonも問題無くリリースされるだろう。それにより、ブロックで使用しているインスタンスも問題無くリリースされる
ので、
__weak id weakDelegate = self.delegate;
ではなく
id deleagate = self.delegate;
としても問題無いだろう
結論としては、
__weak id weakDelegate = self.delegate;
って、しているんだから、そもそも循環参照が起こるかどうかなんて言う疑問は存在しえない。なんで weak にしているか理解しよう。
0622名称未設定
2014/03/16(日) 01:43:33.98ID:nHhE2uNU0iOS6非推奨の警告が頻発してるのはそのせいでしょうか?
0624名称未設定
2014/03/16(日) 02:54:12.70ID:NISYIqPb0レスありがとう。
で、よくよくコード読み返してみたら強参照してて、解放前にinvalidateと、self.timer = nilってしてた。
NSRunLoopが強参照するからweakにしておけばいいんだろうけど、今まで問題なく動いてたのが逆に気になる。。
もうちょいデバッグして解決したら報告します。
0625名称未設定
2014/03/17(月) 00:23:11.95ID:agAfsQoC0返信ありがとうございます。
>なんで weak にしているか理解しよう。
わかりました、私の勉強不足のようですね…
丁寧な説明ありがとうございました。
0626名称未設定
2014/03/17(月) 02:17:30.01ID:lvpdJ259Iアプリを出したんだけど、日本以外からダウンロードされまくって軽い乱交広場になってるんだけど、
公開を日本限定にする方法はないかな?
appだけど、調べてもグローバルに変える方法しかでないんだ!
教えてくれ頼むよブラザー!
0627名称未設定
2014/03/17(月) 02:34:20.12ID:kOsTX7Ma00628名称未設定
2014/03/17(月) 11:13:04.29ID:izMBz/jG00629名称未設定
2014/03/17(月) 16:42:25.23ID:Q0EkE1HW0まずViewControllerを貼り付けたときにメモリ使用量が5MBから200MBになります。
そのあとViewControllerを取り除いたときにメモリの使用量が180MBくらいまでしか戻りません
IBOutletは等思い付く限り解放しているのですが、何か忘れているのでしょうか。
それとも、5MBまでぴったり戻る必要はないのでしょうか。ちなみにリークは検出されません。
0631名称未設定
2014/03/17(月) 17:56:34.72ID:Q0EkE1HW0ありがとうございます。何回かやりましたが200→180→200→180を繰り返すようです。
これでなぜ問題ないのか、原理的にちょっとわからないのですが、
たとえば同様のViewControllerが何個もあったとしたら、それぞれ開いて閉じての度に積もっていきませんか。
0632名称未設定
2014/03/17(月) 19:22:14.78ID:7pkwmb0h0UIImageなんぞは内部的にキャッシュされているっぽい。それもビットマップにデコードされたのを(/も?)
180のときに現在のを終了させられないくらいメモリを喰う別のアプリを立ち上げてみたら?
0633名称未設定
2014/03/17(月) 20:03:45.09ID:/5LVVTn50@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は更新されないんですが何故でしょうか?
0634名称未設定
2014/03/17(月) 20:17:21.09ID:7pkwmb0h0>[[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...ではないのでという点からも
初歩的な本を最初からやり直そう
0635名称未設定
2014/03/17(月) 20:38:41.63ID:/5LVVTn50間違いだらけだったんですね・・・
正しくhogeクラス内のメソッドとViewController内のメソッドを呼ぶにはどうしたらいいんでしょうか?
0636名称未設定
2014/03/17(月) 21:31:08.86ID:kOsTX7Ma0hogeに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];
}
0637名称未設定
2014/03/17(月) 21:38:53.57ID:7pkwmb0h0[[hoge alloc] stringset:self];
を
[[[hoge alloc] init] stringset:self];
にしてやって。最低限でもw
0638名称未設定
2014/03/18(火) 01:00:31.87ID:tybQzlwd00639名称未設定
2014/03/18(火) 06:35:30.32ID:EwL2JUAa0NSRunLoopに入れてもうまく動かないんですが...
0640名称未設定
2014/03/18(火) 08:20:32.25ID:gLSMF8JM0iphoneむけゲームを自力で作ろうとしてるんですが画像の作り方がわからなくてつみました。
0642名称未設定
2014/03/19(水) 04:13:21.83ID:EpSWXh2h0allocationでこれが原因でメモリが積もってることは突き止めたのですが、releaseを送るとメモリは解決するのですが、
少し遅れておかしなタイミングでクラッシュします。自動で解放される様子もありません。
0643名称未設定
2014/03/19(水) 04:30:35.76ID:EpSWXh2h00644名称未設定
2014/03/19(水) 05:00:15.52ID:No13h54s0(1)writeToFile:で保存するのと、(2)NSData に変換してから保存するのではどういう違いがあるのでしょうか?
[_items writeToFile:dataPath atomically:YES];
NSData *itemsData = [NSKeyedArchiver archivedDataWithRootObject:_items];
_items は NSMutableArray で、中身はディレクトリ内のファイルとサブディレクトリパスです。
これをテーブルに表示しています。
0645名称未設定
2014/03/19(水) 15:51:26.19ID:a5pCx4GI0ずっとビューを下ろしたまんまにするとその間更新処理がループするみたいで配列がたりません?みたいなエラーが出ます
普通に実行したり長くビューを下ろしたりしなければ問題ありませんでした
参考になるサイトだけでも教えて下されば
0646名称未設定
2014/03/19(水) 16:53:35.47ID:VFoD1Aad00647名称未設定
2014/03/19(水) 17:09:11.67ID:8ezExCVS0実機の言語環境は日本に設定してあります。
0648名称未設定
2014/03/19(水) 17:10:59.19ID:a5pCx4GI0でも更新がループしないようなロード方法でそれは解決できるとおもいます
それ以外は特に問題は見当たらないので
0649名称未設定
2014/03/19(水) 17:24:17.34ID:26WXQywp00650名称未設定
2014/03/19(水) 17:51:32.06ID:S5A1b4ic0ローカライズしてるよね?
0652名称未設定
2014/03/19(水) 19:48:11.02ID:+ah7ZZZk0アプリを一旦削除して入れ直すと、ローカライズされた画面になることがある。
ならないかも知れない。
0653名称未設定
2014/03/20(木) 10:59:29.84ID:n54zeEtr0ターゲットのローカライズ設定はまだしていません。実機の設定が反映されますよね?
>>652
ダメでした。
0654名称未設定
2014/03/20(木) 12:39:59.93ID:vptrIlsw0アプリのローカライズに日本語が入ってないとデバイスの言語が日本語になっててもローカライズされないよ
アラビア語にローカライズなんかしてないのにデバイスがアラビア語だったら一部(システムで用意されてるボタンとか)だけアラビア語になったら困るだろ
0655名称未設定
2014/03/20(木) 13:05:37.28ID:IICoP46m0名づけました。
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=@"こんにちは”;}
なぜか、エラーが出てしまいます。(ビルドは成功します)
何日か考えてるうちにうつ病になりかけました。ヒントを教えてください。
0656名称未設定
2014/03/20(木) 14:32:39.77ID:Pt5IAnYV0ttp://blog.atgs.jp/index.php/ios7_with_uiimagepickercontroller/
を参考に、OrientationでPortraitを許可して、不格好ながら縦画面ではあるもののImagePicker表示することができました。
さてそうは言ってもImagePicker以外のviewで縦画面を許可するわけにはいかないので、すべてのviewController内で
-(BOOL)shoudAutorotate;でNOとしてみたのですが、全く無視され回転してしまいます。
-(NSUInteger)supportedInterfaceOrientations;でlandscapeを返してみても駄目でした.
何かよい方法はないものでしょうか?
0657名称未設定
2014/03/20(木) 15:11:12.39ID:weYlk3WK0UINavigationControllerかUIImagePickerControllerにカテゴリ追加
(shouldAutorotate/supportedInterfaceOrientations)で行けたはずです。
0658名称未設定
2014/03/20(木) 15:28:54.18ID:lzDLe/qk0prepareForSegue:sender:
では、destinationViewControllerのViewControllerインスタンスは作られるが、viewはまだロードされていない
0661名称未設定
2014/03/20(木) 18:15:14.15ID:weYlk3WK0横モード固定になりますけど、こういうことじゃない?
あと、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;
}
0662名称未設定
2014/03/20(木) 18:37:26.23ID:utApVWX/0っといったものを勉強のためテストで作成しています。
まだ初心者なのでたいした知識がありません。現在自分が思い浮かぶ方法で、
drawRectでmoveToPointにタップを開始した地点を登録して、パンして動かしている間、
その動かした地点までを逐一addLineToPointで登録して直線にしていくっといったことを考えています。
タップした座標は
UITouch *touch = [touches anyObject];
firstLocation = [touch locationInView:self.view];
で取れますが、パンして動かした現在の座標を返す。っといったことはどのようにすれば良いのでしょう?
指を離した座標ではなく、現在パンしている座標を知りたいのです。
非常にわかりにくい文章で申し訳ありません。お知恵を拝借できれば幸いです。
0663名称未設定
2014/03/20(木) 19:29:56.48ID:SAbqkRFa0DynamicAnimator等で物理演算をして、画像を積み重ねています。
四角い画像は普通に出来るのですが、
丸い画像(背景透明でpng)を積み重ねても、丸に沿って積み重ならず、四角い画像として積み重なっていきます。
どうすれば丸にそって積み重ねていくことが出来ますか?
回答お願いします。
0664名称未設定
2014/03/20(木) 19:31:06.90ID:n54zeEtr0なるほど。ありがとうございました。
>>662
移動中も随時イベントとれるよ。
ttp://www.objectivec-iphone.com/event/touch-event/touchesBegan.html
0665名称未設定
2014/03/20(木) 19:31:27.69ID:lzDLe/qk0UIViewはUIResponderのサブクラスで、
touchesBegan:withEvent:
touchesMoved:withEvent:
touchesEnded:withEvent:
が、ある。それぞれ、タッチ初め、移動、終わりで、逐次呼ばれる
でも、他の別のタッチとかもとか諸々便利にしてくれる、UIGestureRecognizer(UITapGestureRecognizer)があるので、普通はそれを使う。かな
0666名称未設定
2014/03/20(木) 19:34:42.62ID:lzDLe/qk0×UIGestureRecognizer(UITapGestureRecognizer)
○UIGestureRecognizer(UIPanGestureRecognizer)
0667名称未設定
2014/03/20(木) 20:52:17.46ID:iOEvf4f+0http://jbbs.livedoor.jp/bbs/read.cgi/study/3729/1069922074/88
http://jbbs.livedoor.jp/bbs/read.cgi/study/3729/1069922074/113-114
↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
この掲示板に優秀な書き込みをして、総額100万円の賞金をゲットしよう!(*^^)v
0669名称未設定
2014/03/21(金) 00:52:21.59ID:e745EGD900670名称未設定
2014/03/21(金) 01:18:23.23ID:ufX5yLNC00671名称未設定
2014/03/21(金) 10:16:30.17ID:3zTmuGS300672名称未設定
2014/03/21(金) 10:22:10.66ID:GShg8VNd0ググってdropboxでの共有する方法を試したのですが、古い記事だったのでバージョンの違いから成功しませんでした
0673名称未設定
2014/03/21(金) 12:04:39.34ID:Vm4jLO830普通にgit使うのがいいと思うぜ
0674sage
2014/03/21(金) 14:26:20.12ID:seTppwz60自己解決。
setQueueWithQueryにfirstItemって引数あった。
0675名称未設定
2014/03/21(金) 15:23:46.23ID:xB99KcuA0標準のメールアプリの新規作成画面と同じようなものって何で作ったらいいのでしょうか?
単純に、UITextFieldで枠線なしにして、各コントロールの間に線を引いてるって形なんでいいんでしょうか?
ただ、この場合でも、複数行になる可能性のある本文部分など、行数によって高さが変わるものは、都度高さ変えるしかないんですかね?
0676名称未設定
2014/03/21(金) 16:35:25.23ID:EQR4BRAB0Content-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;
} }}
0678名称未設定
2014/03/21(金) 17:32:24.49ID:EQR4BRAB0返信ありがとうございます。
すみません、解決しました。
0680名称未設定
2014/03/21(金) 18:13:07.51ID:xB99KcuA0ありがとう
TableViewだと一番下のセルの下側に線が入ってしまうんだけど、標準のメールアプリの新規作成画面だと、本文入力の下には線がなかったので、どうやってるのかなと
0681名称未設定
2014/03/21(金) 19:02:39.49ID:BY25gv+v0おかげさまで、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までの直線を描きます。
続きます。
0682名称未設定
2014/03/21(金) 19:03:25.56ID:BY25gv+v0追加したview(線が描かれて追加されたビュー)を一つのビューにすることは可能でしょうか?
また、addSubviewで追加しているので無理っぽいと思うのですが描写の開始位置とパンしている座標が重なった時
if(startPoint.x == firstLocation.x && startPoint.y == firstLocation.y){NSLog(@"OK!!");}
で、描かれた図形を塗りつぶしたいと考えているのですが、可能でしょうか?
もしできたとしても今の私では理解できないかと思いますが、参考までに可能ならば方法を教えていただけないでしょうか?
拙い文章で伝わりにくいかとは思います。申し訳ありません。もしよろしければ教えていただければありがたいです。
よろしくお願いします。
0683名称未設定
2014/03/21(金) 20:09:54.88ID:ufX5yLNC0線一本毎にひとつのVIewという発想はなかったわ
作成するのはポリゴンだとして、ポリンゴンの表現としてはCGPointを納めたNSArrayにする
CGPointをNSArrayに納めるのは、自分でクラスを作るか、[NSValue value:&addPoint withObjCType:@encode(CGPoint)]なんぞで
ポリゴンとしてのNSArrayは、そのview_Dragged:メソッドがあるクラスのインスタンス変数に持っておけば、追加するポイントが最初のポイントと同じかどうかとかすぐわかるでしょう
ポリゴンとしてのNSArrayに新しいポイントを追加したら、まんまカスタムクラスなViewに渡す
カスタムクラスなViewは、ポリゴンとしてのNSArrayをプロパティに持ち、そのポイントをぐるっと描画するだけ
また閉じているポリゴンか開いているかも最初と最後のポイントが同じかどうかで直ぐわかるでしょう
てな
ポリゴンとしてのNSArrayでなくて、UIBezierPathにした方がより具体的かと思われるけど
0684名称未設定
2014/03/21(金) 21:07:17.96ID:B5L2tOxGi画面にラベルやボタンや画像を配置して
ボタンを押して、変化させてます。
別なある一つのボタンを押せばviewdidload
の処理前に戻りたいですが、可能でしょうか?
0685名称未設定
2014/03/21(金) 21:19:31.87ID:rt/ntDp60質問の本題とは違うけど
その場合の制御文は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 {}
0686名称未設定
2014/03/21(金) 22:48:31.61ID:ehWpKPnx0本文のセルの高さを表示される限界より少し大きくとか。
>>681
このあたりを研究したらいい。個人的にはUIBezierPathがおすすめ。
ttp://programming-ios.com/objective_c-drawing-glpaint-sample/
0688名称未設定
2014/03/22(土) 00:45:38.90ID:CKxRRNuo0ようするに
・一意
・コンテキストの同一性を確かめられる
であればよくて
グローバル変数(定数)を用意しておいて、そのアドレスを渡すとか
一意な文字列定数を用意しておいて、その先頭アドレスを渡すとかすればよいですか?
つまり
OK:
char *const MyContext = "一意な文字列";
const char MyContext; //アドレスを渡す
ダメ:
void * MyContext;
char * MyContext;
0689名称未設定
2014/03/22(土) 11:55:06.30ID:9JICUXnr0iOS 7.1から軒並み無効になっています。バグですか?仕様の変更ですか?
0690名称未設定
2014/03/22(土) 13:09:10.53ID:bqNz0VQp0アップデートの審査が通過してストアに上げたのですが
アプリ名のワードや設定したキーワードで検索をしてもヒットしません。
この問題を解決したいです。
ご存じの方がいらっしゃたら教えて頂けますでしょうか。
0691名称未設定
2014/03/22(土) 13:31:11.79ID:o+q8K6OZ0調べてたら自由定義だから言ってる通りの判断用途に使っても良いし、callbackのselectorでも良い様子
知らんかったから調べるきっかけになったわ
>>689
何をもってバグだと思ったのだろうか
バグと仕変の違いはなんだろ
0692名称未設定
2014/03/22(土) 14:08:39.15ID:9JICUXnr0ひょっとしたら私が知らないだけで代替のメソッドがあるかもしれないので。
あなたは使ってないから関心ないのかもしれませんが、クリティカルな人もいるんですよ。
0693名称未設定
2014/03/22(土) 14:12:22.95ID:JFTsXpKM00694名称未設定
2014/03/22(土) 14:20:27.71ID:o+q8K6OZ0>>693で言われてる通りなんだよね
ぶっちゃけると関心はないし、急ぎなのもわかるよ
でもさ、最新OSを扱うならバグと判断するための調査がいるし、そのためのβ版配布なんじゃなかろうか
もしバグだと思うならApple Developer Centerで報告すれば良い話でもあるし、仕変なら海外サイト見て回ったり、やっぱりあれこれ試す必要ありそうじゃない?
0695名称未設定
2014/03/22(土) 14:25:27.28ID:9JICUXnr00696名称未設定
2014/03/22(土) 14:31:13.87ID:o+q8K6OZ0つまり、俺に調査とバグであれば報告しろと
やなこったってなるだけだぞwwww
0697名称未設定
2014/03/22(土) 14:33:44.54ID:JFTsXpKM0http://stackoverflow.com/questions/22311516/uiprogressview-custom-track-and-progress-images-in-ios-7-1
クリティカルなら自分で探してもここを「すぐに」見つけられたと思うよ
0698名称未設定
2014/03/22(土) 14:34:27.82ID:JFTsXpKM00700名称未設定
2014/03/22(土) 14:38:48.37ID:JFTsXpKM0まあ、ちょっとググってみただけだけど
こんな直ぐに見つけられるようなこと、あんなレスしている暇があったらしやがれっは思っているよw
0701名称未設定
2014/03/22(土) 15:01:49.51ID:9JICUXnr0そこは投稿があった日にすぐ見つけたのですが、そのときはまだ有用な回答はありませんでした。
それきりチェックしてなかったので、どうもありがとうございます。
ご自身でおっしゃる通りちょっとググればすぐ見つかる記事ですので、
わざわざカッコつきで『「すぐに」見つかる』とか書いて頂く必要はありません。更新を追ってなかったのは不覚ですが。
それより、答えるわけでもなく質問が悪いと煽ったり、意図して相手を不愉快にさせるレスを入れることが
空気として許されていることが残念ですねここは。
0702名称未設定
2014/03/22(土) 15:12:10.53ID:U9RJv9Ub00703名称未設定
2014/03/22(土) 15:28:25.23ID:o+q8K6OZ0>>701は>>1を声だして読め、でいいわ
>>700にわざわざ時間とってまで書いてもらってるのに
この恩を仇で返す感じはケンカ売ってるとしか((
0704名称未設定
2014/03/22(土) 15:44:48.61ID:Z52vCZg/0空気でわかるからスルーされるだろw
0706名称未設定
2014/03/22(土) 17:36:06.39ID:JFTsXpKM0有用wなAnswerあったの3/11やん
そんなアホなっ、単なるプライドの高い××なやつがよくつく嘘だなあとしか思えない。でなかったら単なる××w
なんかダラダラ言っているけど、自分が空気悪くしているのがわからないんだから、困ったもんだねぇ
0707名称未設定
2014/03/22(土) 17:42:39.72ID:bqNz0VQp0レスありがとうございます。
iphone実機で日本のApp Storeに配信されていることは確認済みです。
アプリも問題なくインストール出来ています。
配信されてるバージョンも最新のもであることも確認済みです。
0708名称未設定
2014/03/22(土) 18:20:07.74ID:o+q8K6OZ0まあこれ以上のことを俺 は言わないけど、次から曖昧なのは放置するか、>>1とだけしか返えさんようにするわ
>>707
検索結果に表示されてこないのは、Apple Developer Centerになんで引っかからないのかメールか電話したほうが良いかもしんないね
たぶん調べようがなくて原因がわからん気がする
0710名称未設定
2014/03/23(日) 01:20:22.52ID:66p4Dq9700711名称未設定
2014/03/23(日) 11:50:39.70ID:60Chs5rH00712名称未設定
2014/03/23(日) 13:44:09.94ID:y2qW+Pym0これ読んだだけで作れるようになるとは思ってなかったけど、一通り読み終わってさあどうしよう
プログラミング自体に興味があるわけではないんですけどやはりCの勉強から遠回りするのが鉄板なんでしょうか
ググって音楽再生関連のブログとかを見てもコードがいまいち理解できず次の工程の取っ掛かりがつかめません
0714名称未設定
2014/03/23(日) 14:51:47.52ID:T15VX8UN0再生ボタンを押したら音楽を鳴らす系のアプリ?
自分も最初は超入門の本を買ってはじめたけど、これで覚えられる
のはXCodeの使い方とアプリの作り方くらい。
次はiPhone/iPadアプリ開発.逆引き大全500の極意って本がおすすめ。
作りたいアプリの形が決まっているのなら、これのサンプルコードを
使ってアプリを作ると楽。理解出来るようになると、ブログに
書いてたことも理解出来るようになってくると思う。
0715名称未設定
2014/03/23(日) 16:57:16.00ID:NmrUmsDJ0画像がない場合はcell.imageView.image = nil;としていて画像自体はなくなるのですが、画像がないのに横線が短いCellができてしまいます。
どうしたらいいですか。
0716712
2014/03/23(日) 18:23:00.61ID:y2qW+Pym0標準のアプリをちょっと変更したようなものを作ろうとしてます。
まだ始めたばかりで習得が足りないから当然なんですけどリファレンスのページとか見ても
曲一覧を取得してリスト表示に結びつけるのがさっぱりな状態です。
わからんことだらけでモチベーションが下がってきたので基礎の基礎から勉強したほうがいいのかと
思ったんですが(実際込み入ったことするならそのほうがいいんでしょうけど)
紹介された本とか他のサンプルとか見てもう少しがんばってみます。
0717名称未設定
2014/03/23(日) 21:43:12.33ID:Z+4XSt1F0多数のレスありがとうございます。お礼を書き込むのが遅れてすいません。
>>683
ポリゴンは全くわかりませんが、新たに勉強してみる意欲が湧きました。今後の参考にします。
>>685
確かに仰る通りですね、参考にしてコードを直しました。
>>686
ありがとうございます。参考します!
>>687
なるほど・・・なんとなくわかりそうでわかりません。が「可能」であるというレスは大変参考になります。
重ねてになりますが、多数のレスありがとうございます。またお礼が遅れて申し訳ありません。
たぶんまた何度かお知恵を拝借させてもらうかと思いますがよろしくお願いします。
0718名称未設定
2014/03/24(月) 00:26:39.36ID:1DjsQBxa0imageNamed:で呼ぶとパス違いで読み込めません。そこで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:が高速なので相対的に遅くなるのは認識してはいますが、
何かよいアイディアがないものでしょうか?
0719名称未設定
2014/03/24(月) 01:08:27.76ID:hcVlK1OP0UIImageクラスのimageNamed:の挙動を勝手に変えるのは良くない。別クラスのメソッドにするならいいけど。
遅くなる理由は、本来のimageNamed:は一度読み込んだ画像をキャッシュしてるけど、拡張版はキャッシュしてないからじゃないかな?
0720名称未設定
2014/03/24(月) 01:09:04.02ID:a3M3Pnsw0このカテゴリメソッドを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
0721名称未設定
2014/03/24(月) 01:11:34.35ID:a3M3Pnsw02秒もかからんだろ。どんなサイズの画像?
0722名称未設定
2014/03/24(月) 01:35:43.68ID:1DjsQBxa0>>719
最悪、継承しようと思うのですが、既に大部分のコードがあり書き換えが膨大だったもので...。
>>721
600*600pxくらいのpng画像が、状況によって3~7回です。
テストして頂いた結果では体感レベルではほとんど変わりませんね。
他の部分のロジックがおかしいのかもしれないので、再検討してみることにします。
ただしこの拡張コードを取り除くと元の速度に戻るので、ちょっと暗闇ですが...。
0723名称未設定
2014/03/24(月) 01:38:52.31ID:1DjsQBxa0やっぱりimageNamed:の上書きを諦めるしかないのかもしれません。
0724名称未設定
2014/03/24(月) 05:05:49.53ID:lv3MRTXT0imageNamedを上書きなんて、かなり変なことやってると思わないか?
変なことやってるときってのは、たいてい悪いやり方をしてるときだ
0727名称未設定
2014/03/24(月) 09:16:44.16ID:twhR3s2b0separatorのことです。こんな感じで画像がある場合は短くなるのですが、画像がないのに短いセルができてしまいます。
ttp://www.rupan.net/uploader/download/1395620127.png
0728名称未設定
2014/03/24(月) 11:57:16.40ID:bKw9x1P/0教えていただきたいことがあります。
このスレッドでよいでしょうか。
よろしくお願いします。
0729名称未設定
2014/03/24(月) 12:15:11.68ID:a3M3Pnsw0これって カスタムセル?
セルが再利用されてる関係でそうなってるっぽいが、
cell.imageView.image = nil; ←これでいいんだっけ?
これだとimageViewは乗っかったままだよね。
0730名称未設定
2014/03/24(月) 12:15:55.48ID:Pd72z6CY0[cell setSeparatorInset:UIEdgeInsetsZero];
これでどーすかねー
0732名称未設定
2014/03/24(月) 13:22:32.57ID:twhR3s2b0標準のセルです。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; で線の長さは自動調節してほしいのですが、他によい方法ないでしょうか。
0734名称未設定
2014/03/24(月) 13:31:28.11ID:G1N7SIKF0あーー意味がわかった気がするけど、なんかおかしい
下から三つ目のNO IMAGEが何か引っかかる
NO IMAGEって画像だよね?
なんか画像の高さの関係でseparatorにかぶってるだけにも見えるんだけど、どうなんだろ
画像の情報がないからわからないけど、その辺が怪しい気がするな
0735名称未設定
2014/03/24(月) 13:35:39.78ID:G1N7SIKF0NON NAMEだけど、NONE NAMEじゃないの?wwww
0736名称未設定
2014/03/24(月) 13:58:29.77ID:twhR3s2b0すいません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の仕様変更に毎回対応しないといけないので、できれば数字指定でない方法をみつけたいです。
もし他に方法ありましたらお願いします。
0738名称未設定
2014/03/24(月) 14:06:52.77ID:rctYS2s10>このままだとiOSの仕様変更
カスタムなUITableViewCellにして、imageViewもtextLabelもセパレータも自分でUIImageViewとUILabelとUIViewを置いて好きにレイアウトすりゃええんちゃうの
0739名称未設定
2014/03/24(月) 14:07:27.62ID:rctYS2s100740名称未設定
2014/03/24(月) 14:47:10.01ID:twhR3s2b0標準にあわせるのが好きなので標準Cellとして動いて欲しいのです。
>>732のコードだと擬似的にiOS7の標準Cellのセパレータを再現してるだけなので...。
0741名称未設定
2014/03/24(月) 14:53:28.20ID:ekJ2WWFe00743名称未設定
2014/03/24(月) 16:36:31.93ID:G1N7SIKF0標準の動作が好きなのはわからないでもない
変な継承しているせいで、後で苦労したことがあるからわかる
ただ、今回、>>742のやりたいことはcellを継承する他に方法なんてない気がするぞ
cell.contentViewにaddSubViewすることもできるけど、addSubViewするとさらにおかしな挙動になるし
このcellはそういうものと納得するしかない気がするが……
0744名称未設定
2014/03/24(月) 17:26:54.05ID:Ogevw1QH00745名称未設定
2014/03/24(月) 17:28:39.33ID:j1FapGOo0アプリを作るのにMVCを意識して作れと言われますが、
カスタムクラスは主にモデルを構築するためにありますか?
私は文字列やデーターの処理を書いたりしてます。
ビューは言わずもがな。UI部品ですよね。
コントローラーはビューコントローラーとかアップデリゲートで
自動的にメソッドが実行されるものを指すのでしょうか?
0746名称未設定
2014/03/24(月) 17:48:29.46ID:Ogevw1QH0「オブジェクト指向」って言葉並に混乱してる気がするが
モデルはマシンによらない独立した抽象モデル、例えばRPGのワールドそのもの
ビューはそれを表示するUI、そして、コントローラはその間を埋めるゲームルール管理。
みたいに考えているので、データ寄りが「モデル」
データを弄ってUIとやりとりするプログラム本体が「コントローラ」側みたいな…
0747名称未設定
2014/03/24(月) 17:51:55.40ID:j1FapGOo0そうですか〜
それぞれ、クラスを分けてプログラムしろ的な感じですよね。
0748名称未設定
2014/03/24(月) 18:28:15.91ID:G1N7SIKF0似たような感じのことかなぁ
cellなのかviewControllerなのかわからんcellとセットになってるxibがいくつもあるプロジェクトだったわ。。
TableViewの内部ロジックもcellもごちゃついてたなぁ
>>745
モデルはNSObjectをカスタマイズして、データの型として扱うことがあるよ
データをシリアライズして保存したとき、保存したデータをデシリアライズすればその型をまんま使えて助かったりとかする
ビューは外観だけど、外観を表すのに必要なら処理も書くよ
コントローラはビューとモデルを結びつけるのに必要なものと思ってる
必要ならモデル同士の結び付きにも使われたりするんじゃなかろうか
もちろんビュー同士もありえるよね(ViewContrllerが良い例だけど
0750名称未設定
2014/03/24(月) 21:15:56.58ID:twhR3s2b0そうですね。セパレータの長さが戻らないことも「標準」と受け止めて考えることにします。
皆様いろいろとありがとうございました。
0751名称未設定
2014/03/24(月) 21:27:03.57ID:3W9d1aEO02をタップしハイライトされた状態で、2がタッチされた場合のイベントを取得したいのですが可能でしょうか
momentaryではなくハイライトされた状態でイベントを検知したいです
NSArray *arr = [NSArray arrayWithObjects:@“1”,@“2”, @“3”, nil];
UISegmentedControl * segmentedControl =[[UISegmentedControl alloc] initWithItems:arr];
[segmentedControl addTarget:self action:@selector(action:) forControlEvents:UIControlEventValueChanged];
0752名称未設定
2014/03/24(月) 22:29:09.69ID:cMRSnrxY0Core AudioやAV Foundation Audio Queue等々調べては見たものの、
どこから手を付けて良いのか悩んでいます。
手がかりや参考になるサイト等、アドバイスをお願いします。
0753名称未設定
2014/03/24(月) 23:41:52.07ID:a3M3Pnsw0イコライザって設定アプリにあるんだな、わからんかったw
AUGraphでノードにkAudioUnitSubType_AUiPodEQ指定するんだよ。
0754名称未設定
2014/03/25(火) 00:06:38.62ID: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で取るにはどうすれば良いでしょうか?
よろしくおねがいします。
0755名称未設定
2014/03/25(火) 00:13:48.08ID:wDLnFOX30UISegmentedControl単体じゃ無理だな。
UIButtonを3つ並べてtouchDown + touchUpInsideを併用とか。
或は自分でそういうコントロール作るか。
>>754
そりゃ無理。UIImage側ではファイル名は保持してないから。
自分でロードしたファイル名@"xxx.png"を保持しておけばいい。
0756名称未設定
2014/03/25(火) 00:30:36.53ID:wDLnFOX30UISegmentedControlをサブクラス化して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
0757名称未設定
2014/03/25(火) 00:33:24.68ID:wDLnFOX300758名称未設定
2014/03/25(火) 00:49:05.98ID:Yk6xQU7h0それか、最初に画像無しcellのseparatorInsetを保存しといて、毎回設定するとか
0759名称未設定
2014/03/25(火) 09:14:42.47ID:RBj6kBkX0self.myNavigationBar.topItem.titleView=self.mySearchBar;
Auto Layout still required after executing -layoutSubviews. UINavigationBar's implementation of -layoutSubviews needs to call super.
というエラーが出ます。
これなどうゆうことなのでしょうか?
0761名称未設定
2014/03/25(火) 19:34:30.88ID:CCrGDdqs0セルがハイライトして別のviewコントローラに遷移する。
遷移した画面から戻るボタンで戻ると、セルのハイライトはちゃんと消えてる。
という処理の中で起きたバグについて質問
複数のセルをびたびた連打したりして遷移した時、
iOS7だと、2つのセルがハイライトした状態で遷移して
元の画面に戻っても1つのセルのハイライトが点いたまま という状態になってしまう
iOS6だと特におこらないっぽい
これ解消する方法ありますか?
0762名称未設定
2014/03/25(火) 21:13:20.95ID:B29nyzs90テーブルビューのある遷移元の viewWillAppear: か viewDidApper: に
for( NSIndexPath *indexPath in [_tableView indexPathsForSelectedRows] )
[_tableView deselectRowAtIndexPath:indexPath animated:NOorYES];
って書いておく
0764名称未設定
2014/03/25(火) 22:39:51.31ID:qsNyyIDR0ありがとうございます。
ついでといっては何ですが、一つ質問させてください。
現状、ようやく下記テキストを一つ読んだ程度の初心者です。
ttp://www.sotechsha.co.jp/sp/1008/
田舎なもので、本屋にプログラミング系の本がありません。アマゾンで購入を考えているのですが、
初心者から中級者に向けたおすすめのテキストはあるでしょうか?
スレ違いかもしれませんが、もしよろしければ教えてください。
0765名称未設定
2014/03/25(火) 23:45:20.18ID:CytYQWfu0良本は詳細Objective-C 2.0だと思ってるし、Blocks学びたければこの本とかオーディオならこの本とかそういうのしかないんじゃないかなぁ
0766名称未設定
2014/03/26(水) 00:31:13.79ID:1ECy2iQf0>>6にだいたい定番が。
公式日本語ドキュメントのGeneral分類の奴から目を通す
詳解Objective-CはMac用アプリ開発時代から
Objective-Cの詳しい解説書として唯一無二の評価を受けてた本なので
できれば押さえておきたい。(日本語ドキュメントの
「Objective-Cによるプログラミング」を読んでもよいが詳解の方がもっとわかりやすい)
あとはずっとMacOSXの方で定番の入門本を書いてた
アーロンヒレガスの一連の本(通称"ヒレガス本")が定番だったが
ピアソンが技術書撤退したので在庫限りなのでこだわらなくてもいいかも。
0767名称未設定
2014/03/26(水) 01:56:16.35ID:p/jDcBSf0ありがとうございます。
生意気ながら発売から少々時間が経っているので少々不安でしたが、やはり詳解Objective-Cが良さそうですね。
購入を検討します。
0768名称未設定
2014/03/26(水) 11:09:38.54ID:sa1MMKYE00769名称未設定
2014/03/26(水) 11:24:29.05ID:0t/x9byY0レスありがとう
でもうまくいかなかったわ
2つ目のハイライトは、 indexPathsForSelectedRowsの中に含まれないらしい
消えなかった
他には、1つめのセルを押したら画面遷移完了するまで画面内全てタップ禁止
という処理をためしてみたけど、連打してたら普通にハイライト点いてしまった
0770名称未設定
2014/03/26(水) 11:40:26.78ID:duNM0Q0eIいまシューティングゲーム作っているのですが、例えは、敵クラスなるものを作ってインスタンス化させるときに、どこでインスタンス化させるのが一般的なのでしょう?
敵クラスや自分で操作する機体クラス作って、ViewControler.mでインスタンス化して、バトル処理を行うイメージなのですが、
0772名称未設定
2014/03/26(水) 11:51:56.50ID:JyQ1lFZR0再表示するしかないだろうな。[_tableView setNeedsDisplay]か[_tableView reload]
ちなみに連打ってどうやんの?できないんだけど
0773名称未設定
2014/03/26(水) 12:03:16.25ID:Vy8mmxwI0メインループのとこか、それに類するGamePlayScreenみたいなのだろう。
ゲ製の初心者すれにこいよ
0774名称未設定
2014/03/26(水) 12:12:29.93ID:0t/x9byY0>>762のタイミングで、selectedじゃなくて見えてるセル全体にhilighted=NOにしたらいけたわ
戻ってきた時にはちゃんとハイライト消えてる
selectedは反応しなかった
テーブルビューのリロードでも消えたけど、見えてるセルだけ処理したほうがいいよな
遷移前にセル2つ光ってしまうのもなおしたいんだけど、これは
cell.selectionStyle = UITableViewCellSelectionStyleNone とかの切り替えでいけないかな と思ってる
一回この方法でハイライト消そうとしたら、テーブルビューのセルのセパレートの線が消えてしまった
あと>>772のいう連打だけど、シミュレータじゃなく実機でやってるので普通にべちべち叩いてるだけだよ
0776名称未設定
2014/03/26(水) 12:33:42.39ID:kwbHqcXT0けどちょっと特殊な操作なので別に気にしなくていいような気もする。
>>775
連打でだめなら2本指でそれぞれ違うセルを微妙にタイミングずらしてタップすると再現できる
0777名称未設定
2014/03/26(水) 12:41:02.22ID:0t/x9byY0俺の場合、遷移直前に2つめのセルが反応することがある
willSelectRowとかは通ってなくて、ハイライトだけ点く
iOS7でしか起きないっぽいのでOSの仕様かと思ってたんだけど
ちなみにiPadね iPhoneはわからん
>>776他のアプリでもなるのね
直せそうではあるからとりあえず直すわ ありがとう
0778名称未設定
2014/03/26(水) 13:28:56.16ID:0t/x9byY0hilighted=NO だと新たにバグったわ
AのセルとFのセルを連打タップして、最初にハイライト点いたAのセルから遷移した時、
元の画面に戻ってまたA押すと、今度はCのハイライトが点いてAの遷移がはじまっちゃう
結局リロードしかない
[tableView reloadData]じゃなく
[tableView reloadRowsAtIndexPaths:[tableView indexPathsForVisibleRows]〜ってやれば
多分見えてる範囲だけリロードだと思うのでこれでいこうと思います
0779名称未設定
2014/03/26(水) 15:25:50.57ID:8AA3BtT200780名称未設定
2014/03/26(水) 21:26:00.19ID:OJgcKGjz0Labelを使って表示しようとしています。
予定の表題である「title」はそのまま表示できたのですが、
開始時刻の「startDate」と終了時刻の「endDate」を表示させようとすると型が違うとエラーになってしまいます。
そこで、この「startDate」と「endDate」をLabelを使って表示する方法を教えてください。
お願いします。
0781名称未設定
2014/03/26(水) 22:10:11.30ID:8forulbN0まさかNSDateをUILabelのtextに突っ込んでるんじゃないだろうね?
0782名称未設定
2014/03/27(木) 01:25:18.65ID: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 =返す値
}
とする形でも一緒ではないでしょうか?
0783780
2014/03/27(木) 01:27:32.74ID:ND7McDu/0お騒がせしました。
ところで、こうして取得した時間は日本時間ではないようです。
すみませんが、コレを補正して日本時間での予定を取得する方法を教えてください。
0784名称未設定
2014/03/27(木) 06:04:31.30ID:IfBmmI5J0何が言いたいのかいまいち分からないけど、同じクラスのオブジェクトは複数作ることができて、
異なるオブジェクトのitemプロパティは異なる値を持つことができるってのは理解してる?
あと、大文字小文字の区別をちゃんとして欲しい。クラス名は大文字で始めること。
>>783
NSDateはtimezone情報を持ってないよ。
表示する時にNSDateFormatterでtimezoneを指定できるけど、デフォルトは現地時間のはず。
>>780をどう「解決」したかを書くべきだと思うよ。それが間違ってる可能性があるから。
0785名称未設定
2014/03/27(木) 11:32:35.26ID:/09mqFx/0カスタムクラスから、viewControllerのルートビュー(viewControllerからならself.viewで参照)へ参照するには、
どうすれば良いのでしょうか?
カスタムクラスは
import "viewController.h"
-(void) test{
ViewController *viewCon=[[ViewController alloc] init];
viewCon.view.backgroundColor=[UIColor redColor];
}
自分の認識では、これでviewControllerのルートビューのbackgroundColorがredになると考えていたのですが...
0786名称未設定
2014/03/27(木) 11:39:24.21ID:ZqBjU81w0すみません。根本的にカスタムクラスの返り値(戻り値)について
理解不足かもしれません。
インスタンス変数で IBOutlet UILabel *sampleLabel;
を作りました。
メソッドで
-(UILabel *)changeLabel{
NSString *word =@”こんばんは”;
[sampleLabel setText:word];
return word;
}
を作り、viewdidloadで
[self changeLabel];
としました。
一応は変化はしてますが、何か違和感があるのです。根本的な勘違い
があるのかもしれません。
0787名称未設定
2014/03/27(木) 11:47:43.19ID:olRon7iw0特にそのコードだけでは問題が無い
UIColor *redColor = [UIColor redColor];
viewCon.view.backgroundColor=redColor;
NSLog(@"%p %@", redColor, redColor);
NSLog(@"%p %@", viewCon.view.backgroundColor, viewCon.view.backgroundColor);
ってしてみ
同じ値なら、そこは問題が無いがその後が問題
同じ値じゃないなら(たぶん、2個目のNSLogがnull)、そこは問題が無いがその前が問題。リソース/xibの設定がおかしいとか
0788名称未設定
2014/03/27(木) 12:15:41.66ID:olRon7iw0何を質問しているのかわからないよ。何に対して違和感持っているのかも
return word; じゃなくて return sampleLabel;
もしくは
-(UILabel *)changeLabel じゃなくて -(NSString *)changeLabel
もしくは、呼び出し側 [self changeLabel] で返り値を使ってないんだから、
- (void)changeLabel で、return 無し
もしくは、そもそもそれだけだったら
[self changeLabel]
でなくて
sampleLabel.text=@”こんばんは”;
でええやん。と無理に違和感持ってみるとこうなる
0789名称未設定
2014/03/27(木) 12:56:08.98ID:Xdlrq51T0【Apple】 スパイ企業 【iPhone】
http://kohada.2ch.net/test/read.cgi/sec/1389925066/
.
.
.
0790名称未設定
2014/03/27(木) 13:16:44.88ID:JpPbmlan0それは新たにViewControllerインスタンスを生成するコードで、
今既にあるviewControllerを操作するコードではないよ。
カスタムクラスにviewControllerの参照を渡さなきゃならない。
一番初歩的(?)なパターンとしてターゲットアクション/デリゲートを上にいくつか書いたけど、
例えば>>756なら、
MySegCtrl *mySegCtrl = [MySegCtrl alloc] initWith…..];
mySegCtrl.vc = self;
0791名称未設定
2014/03/27(木) 13:31:20.14ID:YGY+dQCr0自分がいま何に何を命令しているのかすらわかってないようだし、Cの基本から始めたほうがいいと思うよ
0792名称未設定
2014/03/27(木) 21:33:57.44ID:KlG+x4Ut0と、思われてるに違いない。
0793名称未設定
2014/03/27(木) 22:21:20.19ID:u1iUBtLg0答える側に回ることはほとんどないが
ここでたまにかなり実装が進んでるっぽいアプリなのに
基礎がすっぽ抜けてるような質問が出てくるのみて
思わず「ふぁっ!?」声を上げることはある。
日本アルプス山中でサンダル履きの登山者を見たみたいな感じ。
0794名称未設定
2014/03/27(木) 22:49:44.01ID:BfsC4wle0ってな具合で作った人に多そう。いや自分のことなんだけどさ。
0795名称未設定
2014/03/28(金) 00:04:15.30ID:E65d0khB0独学でがむしゃらにやってまして、約半年です。
結構、プログラミングには慣れてきましたけど色々知識が抜け落ちてる
そんな気がします。
ViewControllerのインスタンスでIBOutlet *UILabel sampleLabel;
を作成した場合、sampleLabelはUILabelのインスタンスでもありますね。
イメージですがViewController→UILabel→sampleLabel
という感覚です。私の認識が正しいか分かりません。
C言語をもう少し、基礎から勉強しなおそうと思います。
0796名称未設定
2014/03/28(金) 00:07:41.34ID:SEGUaNaQ0はい、私です。重要なところはプロの先輩に聞いて、よく分からんけど実装を繰り返し、三次元計算、当たり判定も公式聞いて実装。
こんな私でももうすぐリリースします。
リジェクトかなw
0797名称未設定
2014/03/28(金) 00:29:00.83ID:p1q9NDwT0>を作成した場合、sampleLabelはUILabelのインスタンスでもありますね。
認識が怪しいのか日本語が怪しいのかこれもうわかんねぇな
0798名称未設定
2014/03/28(金) 00:31:37.22ID:vTZvtw900ViewControllerにsampleLabelを乗せて、それをどうしたいのか。
わからんので答えようがないのです。
0800名称未設定
2014/03/28(金) 01:48:49.05ID:xRQ7AeNm0抜け落ちてるってレベルじゃなくてそもそも基礎が存在しないレベルのようだから、自分はできるとか思い込まないで学生のように1から積み上げてくべき
0801名称未設定
2014/03/28(金) 02:20:00.18ID:relCPoIq0>イメージですがViewController→UILabel→sampleLabel
UILabelは型。intとかと同じと思っていてもいいけど、また変な方向にとも危惧せざるを得ないw
ViewController( *viewController)→sampleLabel
C言語理解できれば、viewController->_sampleLabel となるのも理解できるだろう。C言語でなくてもC++でもJavaでもいいと思うけど
0803名称未設定
2014/03/28(金) 09:55:51.66ID:k6UNojAH0@interface Hoge () {
NSString *_fuga;
}
@end
と、書くのと
@interface Hoge ()
@property (copy) NSString *fuga;
@end
と書くのは、どちらも外から参照できないプライベートな変数という意味では同じだと思うんですが、プライベートな変数をあえて@propertyとして宣言する理由はなんなんでしょうか?
プライベートな変数を@propertyとするか、単なる内部変数とするかの、使い分けはどうされてるんでしょうか?
@propertyにすると、ゲッタ、セッタで挙動をオーバーライドできるのは知っていますが、そうでない場合も@propertで宣言しているソースを見受けるので、何か他にメリットがあるのかなと思いまして。
0804名称未設定
2014/03/28(金) 10:36:22.29ID:U3W+bnri0無名カテゴリにプロパティとして書けばインスタンス変数ではなくプロパティとして扱える。ただそれだけでしょ。
オーバーライド? プロパティを使うメリットはオーバーライドできることじゃなくて、セッタ/ゲッタを通してアクセスできることだよ。
オーバーライドしないで使うことの方が多い。どうしてもセッタ/ゲッタの挙動をカスタムしたいときにオーバーライドするだけ。
特に文字列なんかはプロパティ使った方がいいだろ? なんのためにcopyつけてんだ。
0805名称未設定
2014/03/28(金) 11:05:13.12ID:k6UNojAH0ありがとうございます。確かに文字列はcopy属性にするためにはプロパティ化しないといけないですね
strong属性でいい場合でも、セッタ/ゲッタで挙動をかえられるのでメンテナンス性を考慮してプロパティにして、
外部に公開しない(する予定もない)ちょっとしたフラグ的な変数とかはただのインスタンス変数にするって感じですかね
0806名称未設定
2014/03/28(金) 16:36:55.68ID:BxJFgh4h0開発について調べたところ、画像に透明なスイッチを置いて、それをタップすることで次の画像を表示させていくという方法が基本的な流れだとありました
この場合の質問をさせて頂きたいのですが、
例として、部屋のある一面を見た視野の画像の右端に、タップすると視野が90度移動した画面を表示するスイッチをつけます
右端をタップし、90度右に視野を移した画面にはアイテムAが置いてあり、それを取った場合、アイテムAの無くなった同じ画面を表示させます
もう一度視野を90度左に移し元の画面に戻り、さらに、もう一度90度右に視野を回転させると、アイテムAがある画面になってしまいます。
これを回避する為には、アイテムAを取った時にどの様にしたらいいでしょうか?
元の画面からアイテムAがある画面へのリンクを作る時に、アイテムAがタップされ取得されたならそれがない画面を、まだタップされていないならある画面を表示させるといった流れで作っていくのでしょうか?
質問がわかりにくくなってしまい申し訳ありません、
CGアニメ関係の仕事をしており、CG技術に対しては少し知識がありますが、プログラミングにほぼ知識がないのでうまく質問できていないかもしれません。
少しずつモデリングや謎解きを作り、脱出ゲームに必要な画像ファイルは全てレンダリングが終わり完成した状態です。
0807名称未設定
2014/03/28(金) 16:51:10.36ID:vTZvtw900「アイテムの無い背景」と「アイテムのみの画像」を重ねて表示するのが一般的ですかねえ。
アイテムを取ったかどうかはフラグで保持すればいいでしょう。
ただこれだと鏡や天板への写り込みもうまく描かなきゃなりませんね。
アイテムだけ影が無くてバレバレとかになっちゃ困りますよねw
いやマジメな話。
0808名称未設定
2014/03/28(金) 17:04:13.39ID:vTZvtw900画像が全部できてるならその方法でいいでしょう。
アイテムを取ったら画像を入れ替えればいいんです。
そして BOOL itemA みたいなフラグをYESにしておけばいいんじゃないですか。
0809名称未設定
2014/03/28(金) 17:25:07.23ID:3JhIkpXO0アイテムをとったかどうかは変数で覚えておく。
画面が切り替わったときには、その変数をみて、アイテムを描画するか否かを決める。
それだけだよ。
0810名称未設定
2014/03/28(金) 18:05:10.46ID:ZumwobyA0スクロールビューをアニメーション(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];
0811名称未設定
2014/03/28(金) 18:30:07.64ID:ZrpgjlT60自分でCA系扱ってるかどうかがわからんからもうちょい詳しく
0812名称未設定
2014/03/28(金) 18:45:20.71ID:ZumwobyA0アニメーションは以下のようにしてます
-(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];
}
0813名称未設定
2014/03/28(金) 18:50:14.45ID:BxJFgh4h0回答ありがとうございます。
アイテムに対する鏡の映り込みや光源からの反射を考慮して、アイテムがない状態の背景と、アイテムがある状態の背景を作ってあるのですが
光源など計算された状態のアイテムがある背景の、アイテム周辺だけを切り取って使うことはできますか?
同じ座標に表示させないとズレてしまいますが、アイテム周辺以外は透明にしておけば解像度は変わらないので重ねて表示できますかね?
>>808
回答ありがとうございます。
まだうまくソースコードがかけないのですがやってみます。
アイテムAを取ったら画像を入れ替えられれば、今出来ている画像でなんとかできそうです。
>>809
回答ありがとうございます。
アイテムAを取ったら1、アイテムAを取っていなかったら0みたいな感じでしょうか、
私の今の画像は全ての同じサイズで出力してしまったので、もしそうするならばアイテムのみの画像と、アイテムのない画像を用意するということですよね
そうしたほうが一般的で簡潔に書けそうな気がしますね、
0814名称未設定
2014/03/28(金) 19:31:01.64ID:k6UNojAH0アドレス帳からとってきた名前(フルネーム)を表示したいんですが、アドレス帳には姓、名がそれぞれ登録してあります。
日本であれば「姓 + 名」で出力すればいいと思うんですが、アメリカとかだと、「名 + 姓」ですよね。
どっちを先にするかという情報は、APIでとってこれるもんなのでしょうか? いろいろ探してみたんですが
情報が見つけられなくて、もし分かる人がいましたら教えてください。
0815名称未設定
2014/03/28(金) 19:38:23.06ID:vTZvtw900ああやっぱり結構フォトリアルな画像なんだね。
じゃあ画像をまるまる交換する方でやって、それでもしメモリ食い過ぎとか問題になるようなら、
部分だけサイズ合わせて重ねて表示するプランBで。
入れ替えるのは単純に、UIImageViewのimageプロパティを入れ替えればいいよ。
0816名称未設定
2014/03/28(金) 19:53:34.94ID:k6UNojAH0ABPersonCompositeNameFormat
っていうのがありました。
0817名称未設定
2014/03/28(金) 21:26:41.24ID:gJrl5LZc0自作クラスで作ったインスタンスをNSMutableArray配列に格納しています。
しかし、その配列をNSUserDefaultで保存するタイミングでにエラーが出てクラッシュします。
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSUserDefaults setObject:forKey:]: attempt to insert non-property list object (…
となっています。
どういうことなのかわからずにおります。よろしければ教えて下さい。
0818名称未設定
2014/03/28(金) 21:29:25.91ID:3hDnmHsj0http://i.imgur.com/28UKqgL.jpg
0819名称未設定
2014/03/28(金) 21:46:02.72ID:hb8u2gdW0エラーメッセージで検索したらすぐ出てくるでしょうが。
プロパティ単位にバラす(単一のキー名を工夫したNSDictionayに変更するとか)か
NSDataにぶち込んで保存
http://stackoverflow.com/questions/19720611/attempt-to-set-a-non-property-list-object-as-an-nsuserdefaults
0820名称未設定
2014/03/28(金) 22:32:40.60ID:LUr4Txnf0[目的] ファイルの移動先リストの表示。
やてみたけどうまく行かなかった自分のコード。ディレクトリだけでなくファイルも取得してしまう。
// サブディレクトリの取得
NSError *erroDir;
NSArray *mySubDirs = [fm subpathsOfDirectoryAtPath:_path error:&erroDir];
NSLog(@"mySubDirs:%@ \n",mySubDirs);
これで取得した配列を1個づつファイルかディレクトリかチェックするのは非効率的すぎて、数が増えると速度的に厳しいとおもいます。
iPhone の safari のお気に入りの移動とかはどうやって、移動先を取得してるのでしょうか?
2000個以上ブックマークがあってもサクサク動いてます。
0821名称未設定
2014/03/28(金) 22:42:51.07ID:kXT3g3dS0解答になっていないけど、大量ファイル制御は
objective-cだと遅いので、ftsを使うと良い。
ttp://code2wing.blog83.fc2.com/blog-entry-65.html
このへんをヒントに色々ググってみると良い
0822名称未設定
2014/03/28(金) 23:34:44.85ID:AeynQJMA00824名称未設定
2014/03/29(土) 00:19:37.81ID:ddJ1WS3f0このあたりでなんとかなるかも。
ttp://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q14114225409
0826名称未設定
2014/03/29(土) 00:26:52.63ID:N7uiYVtl0レスありがとうございます。
パスワードの入力まではいかなくとも、スキャン結果(ネットワーク名と電波強度)の表示すらNGなのでしょうか?
0827名称未設定
2014/03/29(土) 00:27:29.56ID:fMDWlwl30NSMutableArray・NSMutableDictionaryで作ってシリアライズするだけで十分な気がするけどね。
0828名称未設定
2014/03/29(土) 00:41:28.13ID:bYi/yBxf0スキャンすることがUndocumented APIです
昔話的にはUndocumented APIでも許されていたが、超Private APIになり、また、Undocumented API使うこと自体を許さなくなりました。図のようなアプリはiOSにもいくつかあったが、そのときに一斉に無くなりましたとさ
0830名称未設定
2014/03/29(土) 00:55:17.77ID:7DylAqGQ00831名称未設定
2014/03/29(土) 00:56:30.70ID:IeuiYxu90回答ありがとうございます。
fts はとっつきにくくてよくわからなかったので、勉強は後回しにして、可変辞書で移動先フォルダのリストを持つことにしました。
フォルダ追加時に、可変辞書にも書き込んどく感じです。
実装すぐに終わりそうです。
0832名称未設定
2014/03/29(土) 01:22:47.81ID:y079AmWH0ありがとうございます。
これでがんばってみます
0833名称未設定
2014/03/29(土) 16:14:10.69ID:cbbdtowx0ありがとうございます。
CGの方は法線マップやAOを重ねてバンプ感を出したり、ランプの映り込みがあるので
単純なアイテムの移動だと、指摘された様に影や映り込みができないことに気づきました。
アイテムだけ浮いてしまう感じですね
画像ファイルはなんとか一枚を150KB程度のものにし、全部で70枚ほどあるので11MBぐらいになりますが、一般的でしょうか?
0834名称未設定
2014/03/29(土) 18:46:46.97ID:nbKTrcGp0http://sarojsblog.blogspot.jp/2011/03/autoplay-youtube-video-in-iphone-ipad.html
ここの3つ目の方法使ってもできません。
UIButtonは取得してるし、[b sendActionsForControlEvents:UIControlEventTouchUpInside];
も確かに呼ばれています。
何が原因ででしょうか。
0836名称未設定
2014/03/29(土) 19:44:54.07ID:cbbdtowx0無意味なアイテムがあると隠せるので制作側は楽ですね
やる側だとそれこそただわかりにくいだけでつまらないって評価になりそうで
うまくヒントになるようなものを置いたりしたいです
何もなさすぎても殺風景で寂しい感じですよね
0837名称未設定
2014/03/29(土) 20:23:22.33ID:fMDWlwl30スキームで〜Testを選択・実行すると、AppDelegate の didFinishLaunchingWithOptions が先行して実行されるようなんですが
これは仕様上どうしよーもないのですかね?このメソッド内で使うクラスのテストケース書いたのですが…
didFinishLaunchingWithOptions を実行させずにテストケース群を実行させたいです。
0838名称未設定
2014/03/29(土) 21:29:14.21ID:y079AmWH0おちるんですが解決策はありますか?
落ちなくても数秒画面が止まります
0841名称未設定
2014/03/30(日) 00:59:43.19ID:0goL2iys00842名称未設定
2014/03/30(日) 01:11:42.48ID:1yJM9pjB0リファレンス等を見てみたのですが特に記述が無かったように思うのですがご教授いただけないでしょうか。
0843名称未設定
2014/03/30(日) 01:12:02.03ID:qeXMlXrc0取得したUIButtonは最初の 赤い Round Rect の Play ではなく、一度再生開始した後に出る 丸い Play (そのページでの画像のと同じ)
buttonのhiddenの状態がそうだし、丸い Play 表示後はsendActionsForControlEventsが効く
最初に 赤い Round Rect の Play が出るように仕様が変わったのかなんなのかは知らない
0844名称未設定
2014/03/30(日) 01:22:42.68ID:fTF3K0VL00845名称未設定
2014/03/30(日) 02:01:26.24ID:ly2Fiprw0初期不良のようなのでアップルストアで交換できますでしょうか?
0846名称未設定
2014/03/30(日) 02:11:42.49ID:XOJQDEbH0メソッドは二種類あって、プログラムで勝手に呼び出されるもの。
(ViewDidLoad,prepareForSegueなど)
自分で実装するものです。
メソッドで
自分で実装したものは基本的には
勝手に呼び出されません。
-(IBACtion)tapButton:(id)sender{
処理}
ただし、上のようなIB上で起きるイベントではボタンを押すと自動的に
メソッドが実行されます。
最初はこのsenderなるものがさっぱり分かりませんでした。
このsenderは「IB上のボタンを押す」という引数であり、
それが引き金になり、このメソッドは実行されるんだと感じました。
0847名称未設定
2014/03/30(日) 02:44:03.54ID:Y6w4vtpW0ちょっと表現がおかしい
ViewDidLoadを自分で(オーバーライドして)
実装するとOS側が呼んでくれる
-(IBACtion)tapButton:(id)sender{
をただ書いただけでは自動的には呼ばれない
IBを使ってつなげた場合やIBを使わないで
自前コードでセレクターとして設定した場合
OS側で呼んでくれることを依頼する形になる。
senderは押されたボタンが入ってくる。
ボタン作成時のタグを取得したり
上記メソッドは複数ボタンに割り当て可能なので
どのボタンが押されたか呼ばれた側で判定する
0848名称未設定
2014/03/30(日) 02:45:11.30ID:ilSUFhDg0・自分しか存在を知らないもの
・他人にも存在が知られているもの
でしょう。
自分しか存在を知らないものは、当然OSやUIから呼び出されることはありません。
しかし、自分のプログラム内でメソッドの存在を教えてやれば別です。
> -(IBAction)tapButton:(id)sender{
> 処理
> }
このメソッドは、IBを使って、あるボタンに対してそれを押したときに処理出来るメソッドとして教えてあげたから、ボタンはメソッドを実行します。
senderはそのボタン自身です。
ボタンは、ユーザに押されたときにIBで教えられたメソッドを自分自身を引数に渡して実行します。
0849名称未設定
2014/03/30(日) 03:01:51.55ID:11iYTZXT0IBAction はストーリーボード用の目印で、ビルド後はvoidに書き変わる。
SBで配置したコントロールに線を繋げるための目印。
senderは線を繋げたコントロールのこと。senderとはメソッドの呼び出し元。
[viewController tapButton:self]; ←超簡単に言えばこうやって呼んでる。
0850名称未設定
2014/03/30(日) 06:07:39.34ID:2oIbmAe20アイコン素材を用いてます。
クリエイトコモンズ?使われている素材なんですが
アプリで利用した場合ってどこに著作者の名前とか書くべき?
0851名称未設定
2014/03/30(日) 12:53:32.03ID:WAmbVD5H0xcodeで新規にプロジェクトを作って(コマンド-Uなどでも)試してみましたが、
AppDelegate の didFinishLaunchingWithOptions は呼ばれるぽいですね、
まぁ、フラグ建てるなどして管理します
0854名称未設定
2014/03/30(日) 14:39:38.05ID:cd/L5NZ00nendのときにあったような画面遷移時pauseでバックグラウンドに行った画面の
広告リクエストを止めるというのは出来ないのでしょうか?
広告の貼ってある画面を3画面遷移したら、
3画面分全部、定期的に広告リクエストが発生しているのですが
0855名称未設定
2014/03/30(日) 20:10:23.39ID:dMx+TNxz0ひとつめのViewControllerで、AVAudioPlayerでbgmを鳴らしたまま、他の画面にmodal遷移しています。
次のViewControllerにうつったとき、そこからbgmを止めるにはどうしたらいいのでしょうか??
0856名称未設定
2014/03/30(日) 20:29:35.80ID:nRF/IptE0ViewController.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へ行って戻ってきた時にもやってしまうが、まあ、既に止めているのを止めようとしているだけだから実害は無いだろう
0858名称未設定
2014/03/30(日) 20:40:58.07ID:nRF/IptE0ViewController.m
- (void)viewDidDisappear:(BOOL)animated
で、止めるでいいだけのよう。遷移先のAppearと遷移元のDisapperの順番を気にしたことが無かったが、
viewWillDisappear in ViewController
viewWillAppear in NextViewController
viewDidAppear in NextViewController
viewDidDisappear in ViewControlle
と、美しく理にかなっているのだった。後に仕様が変更されることは無いだろう、たぶん
0859名称未設定
2014/03/30(日) 22:17:42.16ID:GBqSXwlY0音も映像もLeaksでリークしてるしな
0860名称未設定
2014/03/31(月) 09:08:58.39ID:oYZi19lz0いくら調べてもできなくて…
Tab barのアイコンなんですけど、
あれをカスタムで任意の画像にしたいんです。
けど、フリー素材みつけてDLまではできたんですが、そこから先がどうやっても黒の正方形になってしまってできません…
どうすればいいのでしょうか?
勉強不足で申し訳ありません…
一週間ほどずっと悩んでいて…
どなたか、よろしくお願いします…
0862名称未設定
2014/03/31(月) 10:10:27.08ID:AVozmGx+00863名称未設定
2014/03/31(月) 10:30:34.38ID:0iI3dcGq0Tab bar や Tool bar のアイコンは アルファ しか意味が無いよ。アルファは普通の画像は白塗りつぶしなだけなので、黒の正方形にしかならない
アルファ編集できる画像編集アプリで、RGBからアルファにコピればなんとなく目的の画像を得ることができる。RGBは消してしまってもいい(白or黒の塗りつぶし)
0865名称未設定
2014/03/31(月) 10:54:56.45ID:6tFq+EPi0自前で作ったり、
http://cocoacontrols.com
こーゆーところでtab controller などで検索して、あったやつを使う感じじゃないすかねー
0867名称未設定
2014/04/01(火) 03:39:12.08ID:A8Ia72SV0以下のプログラムは、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];
0868名称未設定
2014/04/01(火) 03:57:22.15ID:PvmPxThy0^(\d{4})\/(\d{2})\/(\d{2})$
これはかなり雑な例だけど
0870名称未設定
2014/04/01(火) 04:20:30.37ID:A8Ia72SV00871名称未設定
2014/04/01(火) 06:24:05.31ID:A8Ia72SV0-(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;
}
0872名称未設定
2014/04/01(火) 09:06:53.75ID:KGMVDQQN00873名称未設定
2014/04/01(火) 14:34:40.81ID:dT8zwNIZ0適したVoIPサービスなどの名称が知りたいです。
どうかご教示ください。
0874名称未設定
2014/04/01(火) 15:46:42.36ID:n5E6XeLV0http://fast-uploader.com/file/6951887509529/
こんな感じで
[viewA addsubview:viewB]
ってなっててviewAのみにレイヤーで影つけたい場合はどうすればいい?
viewAに影つけると、viewBにも影ついちゃうんだわ!
0876名称未設定
2014/04/01(火) 21:30:46.32ID:dT8zwNIZ0おそらく構文のエラーだと思うのですが・・・・。
#ifdef USE_GUI
if (!showNotification(call_id))←ここでエラー
return;
#endif
直し方について、どうかご教示よろしくお願いします。
0877名称未設定
2014/04/01(火) 22:29:51.70ID:ETigS59a0Implicit declaration と invalid in C99 の間に具体的にこれってあるんじゃないの
0878名称未設定
2014/04/01(火) 22:32:40.28ID:ZAxUnCWF00880名称未設定
2014/04/01(火) 22:43:43.53ID:ETigS59a0宣言している
gui.h
をincludeしてないもよう
#ifdef USE_GUI
#include "gui.h"
#endif
としとけばいいんじゃね
0881名称未設定
2014/04/01(火) 22:55:40.08ID:sThFjlm80自宅でもやるために中古マック買おうか考え中なのですが、
中古マックでもデベロッパ契約とかアップルストア登録?とかに
問題とかないですか?
新品買っとくべき?
0882名称未設定
2014/04/01(火) 23:18:30.86ID:dT8zwNIZ0>>881
レスありがとうございます!!
なんとかエラーが消えました!!
でもまた別のエラーがあるので、
なんとかしてみたいと思います。
回答してくれた方々、どうもありがとうございました。
0883名称未設定
2014/04/01(火) 23:20:22.69ID:ETigS59a0どんなハード持っているかなんてまったくもって関係無い
最低限 OSX 10.8 以上が動くMac買っとけばいいよ。いまのうちは
0884名称未設定
2014/04/01(火) 23:22:51.93ID:tT/AxWmO0あるUIViewは、接続されたUIViewの配列をプロパティに持つようにしています。
接続されたUIViewの配列を、
@property (nonatomic, retain) NSMutableArray *neighbors;
として宣言しているのですが、これは循環参照になってしまうのでしょうか?
1対1なら weak で宣言するのですが、配列内に入れる場合が分かりません。
0885名称未設定
2014/04/01(火) 23:32:58.53ID:ic2BFjOE0ARC、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の入れ替え方法を教えてください
0886名称未設定
2014/04/01(火) 23:35:19.37ID:VIcVOPr50予算によるけど、Macは中古と新品の価格差があまり無いから、新品買えるなら新品が良い。
中古を狙うのであれば、2010年以降のMacが良い。基本だけどメモリは積めるだけ積む。
core i5/i7機であれば開発するには困らないよ。
0887名称未設定
2014/04/02(水) 00:16:15.92ID:DK+Ta2R60それだけだったら、なんとも言えない。てか、とりあえずならない
neighborsに入れるViewがneighborsを持っているそのViewをインスタンス変数に持っているの?持ってないでしょ?
循環になるかよーく考えてイメージしてみよう
0888名称未設定
2014/04/02(水) 00:24:03.13ID:DK+Ta2R60オーナーシップを無視しているから
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のインスタンスのリリース/オーナーシップの放棄を行なうから
オーナーシップの概念を最初から勉強し直そう
0889名称未設定
2014/04/02(水) 00:31:30.24ID:DK+Ta2R60あ、あと
imageView.image = hoge;
は、単に変数に値を入れているのじゃないよ
[imageView setImage:hoge];
が、実際のコードだよ。で、propertyの属性がretainなので、setImage:の中で、新しいUIImageインスタンスのretain/既存のUIImageインスタンスのreleaseが行なわれている
0890名称未設定
2014/04/02(水) 02:08:08.91ID:/J/zwRalIすみません、説明不足でした。
たとえば、A,BのUIViewだけがある状態ですと、
A.neighborsにはBのポインタが、B.neighborsにはAのポインタが入ってしまっています。
AがB、BがAを強参照していると循環参照になりますが、
A->A.neighbors->B->B.neighbors->Aの場合はどうなのか分からず、かつ回避方法も分からないです。
0892名称未設定
2014/04/02(水) 02:27:06.18ID:DK+Ta2R60>A.neighborsにはBのポインタが、B.neighborsにはAのポインタが入ってしまっています
なるほど。循環参照の何が悪いのか理解してみよう。循環参照は絶対悪じゃないよ
入れるのはあるメソッド/トリガーによってだろうけど、出す/削除するもトリガーがあるんじゃないの?
AまたはBが消えるときってわからないの?わかれば問題無い。わからなければ、わかるようになる方法を考えてみたら?
極端にだと、それらのViewを(暗黙的にも)管理すべきViewControllerがたぶんあるだろうから、それのdeallocででも 全ての view の neighbors に nil を突っ込むか、[neighbors removeAllObjects] でもしてやれば、循環参照は一気に解消されるだろう
循環参照が問題なのは、外部的要因が発生しないと解消されないでメモリに残るってだけ。逆に積極的に循環を切ってやれば循環参照になっていようが関係無いってこと
0893名称未設定
2014/04/02(水) 02:42:14.93ID:DK+Ta2R60どーしても一時的にでも循環参照になるのが嫌だったら、
@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]];
とするかなと思い付き
0894名称未設定
2014/04/02(水) 02:43:00.56ID:/J/zwRalIちょっとしか考えてないのに申し訳ないですが、
矢印が戻ってきて循環参照に思えて仕方ないです。。
>>892
なるほど、詳しい説明ありがとうございます。
管理もとのUIViewCobtrollerのViewDidDisappearですべてのUIViewを取り除いていたのですが、
まず全てのUIViewのneighborsにnilを入れないと解放されない危険性がありそうですね。
0895名称未設定
2014/04/02(水) 02:54:02.09ID:DK+Ta2R60>管理もとのUIViewCobtrollerのViewDidDisappearですべてのUIViewを取り除いていたのです
おお、削除するあなたのコードがあるんのね。じゃ、そこでついでにneighborsにnilってすればいいだけのよーな
しない今は(?)循環ってるのは解放されていないだろうねえ
0896名称未設定
2014/04/02(水) 03:02:21.58ID:/J/zwRalIコードまでありがとうございます。
これなら循環参照にならないですね。
とても勉強になります。
0897名称未設定
2014/04/02(水) 03:07:09.75ID:/J/zwRalIなんか入れ違いですみまけんを
まさにnilを入れれば解決しそうです。
メモリプレッシャーで落ちることがあったのですが、これで直りそうです。
0898名称未設定
2014/04/02(水) 08:37:16.84ID:5Dtb22Fg0Modelでやれ
0899名称未設定
2014/04/02(水) 09:39:09.26ID:hd6AYr0g0registerClass:[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;
}
0900名称未設定
2014/04/02(水) 09:52:03.05ID:d+Vsu2/80以下のようにしても履歴が残ってしまいます
[[NSURLCache sharedURLCache] removeAllCachedResponses];
履歴を消した後goback、gofowardができないようにしたいです
0902名称未設定
2014/04/02(水) 13:49:39.66ID:BRg7erak0テキストビューは存在してるけどクラスは標準のcellのままなのでプロパティではアクセスできずにタグでアクセスすることになる。
cellのサブクラスを作成して、ストーリーボード上でcellのクラスを設定し、アウトレットも設定すればいい。
HogeCell *cell = (HogeCell*)[collectionView dequeueReusableCellWithReuseIdentifier:@"collectionCell" forIndexPath:indexPath];
としておけば、cell.textViewにアクセスできるようになる。
0903名称未設定
2014/04/02(水) 16:57:45.98ID:zmhWpSdr0@property (nonatomic, readonly, copy) NSString *title;
readonlyなのに、copyを付けるってどういう意味があるんでしょうか?
0904名称未設定
2014/04/02(水) 17:05:14.61ID:dg2g175t00905名称未設定
2014/04/02(水) 17:25:26.99ID:zmhWpSdr0ありがとうございます。
でも、readonlyだけでよくないですか?
readonlyってことはセッターが無いってことだから、copyは不要じゃないですか?
copyがついてる意味がわかりません。
0906名称未設定
2014/04/02(水) 17:41:42.76ID:dg2g175t0参照したオブジェクト側も変わってしまうのがイヤだからcopyつけておく
解りにくくてあれだけど
0907名称未設定
2014/04/02(水) 18:13:51.56ID:zmhWpSdr0よくわからないのですが、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が有効なのはセッターだけだと認識してますが、間違っていますか?
0908名称未設定
2014/04/02(水) 18:28:27.80ID:dg2g175t00909名称未設定
2014/04/02(水) 18:42:51.71ID:zmhWpSdr00910名称未設定
2014/04/02(水) 20:19:55.11ID:kIKwYQe90ビデオ通話などがリアルタイムに出来るSIPやVoIPライブラリでXcode5でarmv7sでも使えるものありますか・・・?
PJSIPはビルド出来ませんでした。
iDoubsはiPhone4Sでビルドは出来ましたが、iPhone5に対応してないようです・・・。
出来ればSIPの技術使ったものがいいです。
ビデオチャットなどのデータやカスタムデータががリアルタイムに送受信出来れば、SIPじゃなくてもいいです。
何かライブラリがあれば教えて下さい。
0911名称未設定
2014/04/02(水) 22:11:57.10ID:LdJ9yewR0>>889
詳しい回答ありがとうございます
オーナーシップ(所有権)の関係だったのですね
[imageView setImage:image];でメモリーが増大することもなくなりました
でおっしゃているとおり、imageView.image = nilを代入と考えていました
公式の高度なメモリ管理プログラミングガイド
にもしっかり書いてありました
・自分が所有していないオブジェクトの所有権を放棄することはできない
0912名称未設定
2014/04/02(水) 23:04:09.35ID: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が表示されてしまっています。
0913名称未設定
2014/04/02(水) 23:13:10.79ID:DK+Ta2R60num[i]= 0;
num[i]= 1;
num[i]= 2;
を消して
num[i]= i;
0914名称未設定
2014/04/02(水) 23:38:39.08ID:e/HGsyFo0能力不足でした。考え直します。
0915名称未設定
2014/04/02(水) 23:50:38.05ID:Lj0aDsK20NSTimerでインクリメントした数字をラベルに代入すればいいよ
0916名称未設定
2014/04/03(木) 01:19:31.65ID:BaVSOs240回答ありがとうございます。
昨日丸一日ひたすらコレクションビューについて調べて、なんとか動くようになりました。
原因不明で動かず、ViewController から作りなおしたら動きました。
再利用識別子かクラス名、接続ミスかなんか基本的なとこがおかしかったみたい。
.xib のカスタムセルを登録。
[self.myCollectionView registerClass:[MYCollectionCell class] forCellWithReuseIdentifier:@"collectionCell"];
その後、取り出し
MYCollectionCell *cell = (MYCollectionCell *)[collectionView dequeueReusableCellWithReuseIdentifier:@"collectionCell" forIndexPath:indexPath];
cell.collectionTextView.text=@"testtesttesttesttesttesttesttesttesttest";
まだ、挙動がおかしいんですよね。
ストーリーボードのセルに xib のカスタムセルのサイズが引っ張られる。
でもこのストーリーボードのセルを消したらビルドが通らない。
0917名称未設定
2014/04/03(木) 01:31:50.28ID:a4wiQmEu0ストーリーボード上のセルの設定でセル自体のサイズは決まる。
xibのセルでsubViewsの設置や配置が決まる。
0918名称未設定
2014/04/03(木) 13:14:44.00ID:GmWUoCLK0角が丸くなってるセルをタップした時のハイライトが
四角いままではみ出るのって仕様?
見た目丸なのにタップしたときだけ四角いのが気になる
[cell setClipsToBounds:NO]
とか
[cell.contentView setClipsToBounds:NO]
でハイライトはみでないようにできないかと思ったけど変わらなかった
0920名称未設定
2014/04/03(木) 14:49:54.15ID:GmWUoCLK0今やってできなかった
テストとして、幅が長いUILabelをcell.contentViewに置いて
clipsToBoundsとかmaskToBounds設定してみたけど、テキストすごいはみでてる
ラベルとかセルからはみでないようにする設定って普通できるよね?
俺のやりかたがなんか間違ってるかもしれない・・・
0922名称未設定
2014/04/03(木) 15:08:41.64ID:BEl6Jr2000924名称未設定
2014/04/03(木) 18:25:11.13ID:3Vdf5U7600925名称未設定
2014/04/03(木) 19:02:50.01ID:vjN4ADLT00926名称未設定
2014/04/03(木) 19:44:40.90ID:3Vdf5U760わかりました。
ありがとうございます。
0927名称未設定
2014/04/03(木) 19:47:57.42ID:hb7+YJTP0http://d.hatena.ne.jp/KishikawaKatsumi/20120310/1331335893
のソースを落としてシミュレータで試したのですが動きません。
エロい方教えてくださいよろしくお願いします。
シミュレータでは音声認識機能は使えないのか
(シミュレータのメニューに音声認識機能使用開始する項目がありますが、
一方シミュレータ画面中の設定画面の音声入力ページは空白なので
どっちなのか分かりません。。)
iOSバージョンが上がって使えなくなったのか、、、
0928名称未設定
2014/04/03(木) 21:30:21.63ID:BaVSOs240@property (weak, nonatomic) IBOutlet UICollectionView *myCollectionView;
ストーリーボードのコレクションビューから線をひっぱって↑を .h に接続して、
ビルドすると画面が真っ暗になるのはなぜでしょうか?
接続しないと、セルが表示されるのが不思議です。
これにかぎらず、コレクションビューとストーリーボードの挙動がトリッキーに感じます。
0929名称未設定
2014/04/03(木) 23:15:33.53ID:a4wiQmEu0collectionViewはデフォルトの背景色が黒。
接続しないと表示されるの意味が分からん。
挙動がおかしいとかトリッキーとか理解不足のお前の感想はどうでもいいから、質問を簡潔に分かりやすく書け。
0930名称未設定
2014/04/04(金) 00:21:25.82ID: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内のプロパティを参照することはできないのでしょうか?
自分で見返しても、ものすごく分かりにくい文章かと思います。それでも意図をご理解してご教授頂ける方がいましたら是非教えてください。
よろしくお願いします。
0931名称未設定
2014/04/04(金) 00:32:32.39ID:7lqVF3sj0CustomClass.mでViewController.hをインポートしてないから、
ViewControllerのcccが見えてない。
#import "ViewController.h"
0932名称未設定
2014/04/04(金) 00:49:46.63ID:7lqVF3sj0もうひとつ。
@property (….) UIViewController *vc; を、@property (….) ViewController *vc; にしよう。
スーパークラスの型で宣言するとサブクラスのcccが使えない。(キャストすれば使える)
0933名称未設定
2014/04/04(金) 00:52:20.10ID:7lqVF3sj0@class ViewController; を書いて、ViewControllerっていうクラスがある事をコンパイラに教えてあげよう。
0934名称未設定
2014/04/04(金) 01:00:24.78ID:vzP+xp020インポートで解決するけど、CustomClassの方ににcccのプロパティを宣言しておいて
aaa.vc = self;
aaa.ccc = self.ccc;
としておいた方がいいかもしれない。お互いにインポートしあうようなクラス同士の関係はあんまりよろしくない。
「MVC、疎結合」あたりでググっていろいろ読んでおくことをオススメする。
0935名称未設定
2014/04/04(金) 01:18:36.63ID:7lqVF3sj0両方とも ViewController.h に宣言すれば、#import "ViewController.h" だけで解決するよ。
0936名称未設定
2014/04/04(金) 01:39:55.50ID:7lqVF3sj0ああ、言ってる意味がわかったよ。
ViewControllerがカスタムクラスをインスタンス化して乗っけてる。
で、カスタムクラスからtarget-actionでviewControllerを呼んでると。
だがカスタムクラスではなぜかviewControllerのcccを取得する必要が出てるという事ね。
これはviewcontrollerがカスタムクラスにcccの値を教えてやるべきだね。
おっしゃるとおり、customClass.ccc = self.ccc;
0937名称未設定
2014/04/04(金) 05:19:52.00ID:RfMLg4Ou00939名称未設定
2014/04/04(金) 13:35:07.78ID:lpQqN+rc0Aのテキストフィールド:キーボードを用いる
Bのテキストフィールドキーボードは用いない(表示しない)
としたいのですが
Aを編集中のとき、Bのテキストフィールドの編集に移っても
キーボードが消えません。
ただし、Aを編集中→Returnボタンをおすとキーボードは消せます。
どうしたらいいのでしょうか。
ちなみに以下の用に設定してBが編集が始まった場合にはキーボードが表示されないようにしています
-(BOOL)textFieldShouldBeginEditing:(UITextField*)textField
{
if(Aのテキストフィールドが編集されたら) return NO
else YES
}
0941名称未設定
2014/04/04(金) 16:05:21.83ID:2jTaw+Me0”文字がUITextViewの右端まできたら”という判定を取りたいのですが
方法はあるのでしょうか?
0942名称未設定
2014/04/04(金) 16:38:59.41ID:0LwcF7tL0あるメソッド内で生成されたもので、名前を指定して>>940のように参照はできないので
//テキストフィールド編集終了後の呼び出される
-(void)textFieldDidEndEditing:(UITextField*)textField{
[textField resignFirstResponde]
}
としたのですがこれでも消えません
0943名称未設定
2014/04/04(金) 17:12:54.28ID:B7R5h9sM0ちなみに
>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でだけ探せばいいのか、違うレベルにあるのかはまあ適当に
0944名称未設定
2014/04/04(金) 17:23:40.70ID:B7R5h9sM0まあtagでAとかBとか判断するんだろうなと思ってたけど、それならループらなくても
[textField.superview viewWithTag:Aのtag値];
で、参照できるなと気付いた
0945名称未設定
2014/04/04(金) 17:51:09.44ID:pZTyw5kj0>>931
すごく早い回答ありがとうございます。
一連の説明どおり行ったら、あっさりできました。本当にありがとうございます。
>>934
教えていただいた方法のほうが、よさそうですね。仰る通り、ググって勉強してきます。
ありがとうございます。
0946名称未設定
2014/04/04(金) 18:51:08.41ID:id6tZqgA0ストーリーボードで作ったセルが表示されなくて困っていました。
自己解決したので一応報告。
// [_myCollectionView registerClass:[MYCollectionCell class] forCellWithReuseIdentifier:@"collectionCell"];
登録をやめたらうまくいきました。
SB のセルは リユース ID とカスタムクラス名だけ設定すればいい。
http://stackoverflow.com/questions/15824225/uilabel-in-custom-uicollectionviewcell-always-null-cant-update-text
ストーリーボードで作ったセルに登録は不要。登録したらしたらおかしくなる。
全く動かないのではなくて、トリッキーな挙動をする。
ワナの具体例
1. アップルの工作員に registerClass: でセルの登録が便利だわとネットでステマさせる
2. セルの登録すればやれると煽る
こういうのを目にすると、登録しちゃいますね。
でもこれは、アップルの巧妙な罠なので気をつけましょう。
0947名称未設定
2014/04/04(金) 19:06:26.41ID:F2XPyq8g0Appleにとってなんのメリットがあるのでしょうか?
気になって夜も眠れません
0948名称未設定
2014/04/04(金) 19:24:42.96ID:id6tZqgA0開発長期化によるデベロッパ登録料の搾取と増加。
これもありますが、一番の目的は苦しんでいる開発者をあざ笑うことでしょうね。
他人の不幸はりんごの蜜の味です。
0949名称未設定
2014/04/04(金) 20:19:07.40ID:F2XPyq8g0開発が長期化するとデベロッパの負担が重くなりApple離れを促進してAppleにとってもデメリットがあると思うのてすが、
そのデメリットを天秤にかけても他人の不幸を味わうことの方がAppleにとって魅力的ということでしょうか
ありがとうございました
0951名称未設定
2014/04/04(金) 22:26:26.55ID:F2XPyq8g00952名称未設定
2014/04/04(金) 22:33:08.65ID:7lqVF3sj0UITextViewDelegateメソッドのtextViewDidChange: を次のようにすれば、カーソルのCGRectがわかる。
だが次に入力される文字が例えば "i" なのか "M" なのかによって、これが「行末の文字」かどうかは変わるよねえ。
次の入力で強制的に改行するようにすればできるけど。
- (CGFloat)textViewDidChange:(UITextView *)textView {
UITextPosition *pos = textView.endOfDocument;
CGRect cursorRect = [textView caretRectForPosition:pos];
}
他にも文字の座標を知る方法はあるけど、同じ事が言えるかなあ。
0953名称未設定
2014/04/04(金) 22:36:50.93ID:7lqVF3sj00954名称未設定
2014/04/05(土) 01:50:44.18ID:IjSLsINC0アニメーションに便利な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になっています。
同じ症状の方や思い当たる節があれば是非ご教示願います。
0955名称未設定
2014/04/05(土) 06:07:33.66ID:WNJwdQsq0解決したかい?
- (void)resignCurrentFirstResponder {
UITextField *C = [[UITextField alloc] initWithFrame:CGRectMake(…..)];
C.hidden = YES;
[self.view addSubview:C];
[C becomeFirstResponder];
[C removeFromSuperview];
}
0956名称未設定
2014/04/05(土) 07:22:57.34ID:AwwvuH/50icloudでカレンダーがオン、リマインダーがオフの場合、EKSourceTypeLocal、EKEntityTypeReminderのEKcalenderを保存しようとすると
Error Domain=EKErrorDomain Code=24 "このアカウントはリマインダーをサポートしていません。"
というエラーが返ってきます。
おそらくカレンダーでicloudが有効になっているためEKSourceTypeLocalのカレンダーが保存できないのだと思うのですが、リマインダーに用いるEKCalenderのみローカルに保存することはできないのでしょうか?
0957名称未設定
2014/04/05(土) 07:41:45.16ID:J7Wr2HkS0Appleの録音サンプルもハングするので使えなさ毛ですが
ネットには使えるという情報があるので、、、
0958名称未設定
2014/04/05(土) 09:26:41.89ID:vqe+i/3y0無事おかげで解決できました。ありがとうございます。
でも一つ引っかかる点があります。
それは、なぜ以下のメソッドでキーボード非表示の処理を呼び出しても
キーボードが消えなかったのかということです。
//編集終了後に呼び出される
-(void)textFieldDidEndEditing:(UITextField*)textField{
//キーボードを閉じる
[textField resignFirstResponder];
}
firstresponderについてなんとなくしか知らないのですが
これに関して勉強すれば分かるのかな
0959名称未設定
2014/04/05(土) 10:07:52.17ID:/mDa7tOB0ありがとうございます!!
おかげで解決できそうです。
0960名称未設定
2014/04/05(土) 11:04:27.65ID:qSgRPWqj0textFieldShouldBeginEditing:で、NOを返しているから、FirstResponderが変わらないので、textFieldDidEndEditing: が呼ばれないからじゃね
0961名称未設定
2014/04/05(土) 11:13:39.18ID:qSgRPWqj0ああ、textFieldDidEndEditing:のtextFieldがresignされるのに/されるからtextFieldDidEndEditing:に入っているのに、そこで[textField resignFirstResponder]しても意味が無いの方か
0962名称未設定
2014/04/05(土) 13:06:17.92ID:vVVa4RFe00964名称未設定
2014/04/05(土) 13:19:46.31ID:vVVa4RFe0返答ありがとうございます。
自分が調べたのが以下のコードになるのですがこれだと”改行”を押したときの行数を取得できるのですが、
テキストを右端まで入力したときに自動で改行されたときの行数は取得できないです。
右端まで入力して自動改行されたときの行数の取得方法はありますか?
- (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);
}
0965名称未設定
2014/04/05(土) 13:30:25.63ID:y+GbYt8l0送信ボタンをクリックしてメールを送信するのですが、メールが到達しません。
mailComposeController:didFinishWithResultのresultをチェックしても正常終了しています。
これは、MACのsendmailプログラムにメールは渡されたが、MACがメール送信していない状態なのでしょうか?
MACの場合、メール送信キューってどのフォルダーになるんでしょうか?
0966名称未設定
2014/04/05(土) 13:39:41.53ID:y2sDM+st0MacのSMTPを使ってるってこと?
0967名称未設定
2014/04/05(土) 13:46:38.79ID:MFTvxrzF0__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++;
}];
0968名称未設定
2014/04/05(土) 13:47:08.79ID:y+GbYt8l0xcodeからメールが送信されないから、
xcodeはmac osにメールを渡しているだけかと想像しただけです。
私はmacやxcodeは初心者なので・・・
不具合を分析するために、macの隠しファイルの表示やコマンドの使い方等知らなければならないことが多いですね。
0969名称未設定
2014/04/05(土) 13:56:10.64ID:qSgRPWqj0MFMailComposeViewControllerのSendはMail.appに依頼するだけのようかな。Mail.app(orメールのcore?)が実際に送信するような
てきとーにsmtpサーバの設定してやってみたら、MFMailComposeViewControllerは問題無くMFMailComposeResultSentだが、Mail.appでsmtpに送信できなかったって出てる
そういうもんなんだろう
0970名称未設定
2014/04/05(土) 14:02:58.30ID:qSgRPWqj0ということで、Simulator には Mail.app が無いので、MFMailComposeViewControllerでメールは送れないだろう
実機では、Mail.app みりゃわかるだろう
0971名称未設定
2014/04/05(土) 14:21:39.07ID:y+GbYt8l0後日実機に入れて確認してみます。
0972名称未設定
2014/04/05(土) 15:56:39.17ID:8ADYjdDR0iPhone5よりメモリ容量が少ないiPhone4で落ちないか心配です
ですが自分はiPhone4を持っていないのでiPhone4での実機テストが出来ません
iPhone4のメモリ容量512MBのうちアプリに使用出来るのは何MBぐらいか教えていただけないでしょうか
0973名称未設定
2014/04/05(土) 20:38:29.76ID:mwSPj3uM0じょぶず.
0974名称未設定
2014/04/05(土) 20:45:57.63ID:uyIHZYTr0ストアにリリースしたアプリのバイナリを脱獄するなどして取得した場合、
↑の文字列"テストテスト"は解ってしまうもんでしょうか。
ゲームのラスボス名やパスコードなど仕込みたいんですが…
0976名称未設定
2014/04/05(土) 20:51:22.37ID:uyIHZYTr0マジですかw
ありがとうございますー データ暗号・復号ってどうしてますかね、復号するにしてもパスワード必要ですし…
0977名称未設定
2014/04/05(土) 21:00:40.31ID:qnZHkfjc00978名称未設定
2014/04/05(土) 21:14:47.95ID:qSgRPWqj01Mのcallocの繰り返しでは651でアウト
1MのNSMutableDataの繰り返しでは520でアウト
確保したメモリに値を埋めてもクラッシュはしないけど、そうなのか!?
SYS-ActivityではFreeは265M。まあ、これが目安だろうな
iOS 7.1
0980名称未設定
2014/04/05(土) 22:06:05.02ID:vqe+i/3y0コードみてもいまいちわからんが
単に文字列を暗号化、復号化するくらいなら
ほとんどコピペで実現できそうな感じだった。
0981名称未設定
2014/04/05(土) 22:10:43.04ID:qSgRPWqj0値を埋め損なっていた
1Mのcallocの繰り返しでは352
1MのNSMutableDataの繰り返しでは349
で、クラッシュ。まあ、これが順当か
0982名称未設定
2014/04/05(土) 22:34:12.25ID:iceRxZkr00983名称未設定
2014/04/05(土) 22:38:14.58ID:cPWU0UhY0そのオブジェクトに
touchesBegan:touchesMoved:touchesEnded:を実装し、背景を青色にした
適当な大きさのUIViewのサブクラスを貼付けて
起動してみたのですが、素早くスワイプするとtouchesBegan:touchesMoved:touchesEnded:が
呼ばれずに画面がスクロールされてしまいました。
UISwipeGestureRecognizerが原因と考え、UIScrollにresignFirstResponder
UIViewのサブクラスにbecomeFirstResponderを送っても相変わらず素早くスワイプすると
画面がスクロールされます。
なぜスクロールされるのでしょうか?
0985名称未設定
2014/04/06(日) 03:34:47.91ID:QMoYN2no0変換でいいんじゃ
0986名称未設定
2014/04/06(日) 07:03:09.16ID:l6oxp3sI0素のscrollViewにこれだけでいいよ。
delaysContentTouches = NO;
canCancelContentTouches = NO;
0988名称未設定
2014/04/06(日) 11:46:44.25ID:UKPttMOR00989名称未設定
2014/04/06(日) 12:07:10.97ID:P0oxT3OU0https://github.com/ole/OBShapedButton
の
https://github.com/ole/OBShapedButton/blob/master/UIImage%2BColorAtPixel/UIImage%2BColorAtPixel.m
のように
0990名称未設定
2014/04/06(日) 12:54:31.69ID:UKPttMOR0おぉー!
求めていたのはこれです!!
使ってみたいと思います。
本当にありがとうございました。
0991名称未設定
2014/04/06(日) 15:17:31.93ID:HCtxasq000992名称未設定
2014/04/06(日) 19:39:41.98ID:TRAJu8d90欲しいのはUIImageオブジェクトでした。普通に出来るんですね
ObjectiveCの文法表記がわがんね…
0993名称未設定
2014/04/06(日) 20:11:59.58ID:3UCZgO7W0普通のhttpリンクと区別するために独自のURLスキームとかつける感じで
とりあえず思いついたのはjsonに変換してURIエスケープしてパラメータに載せるっていうやつなんですけど
例えば
@"myapp://myapp.com/?object=%@", uriEscapedJSONString
みたいな感じで
ただこのmyapp.comとかが冗長な気がして、いろいろフォーマット模索してるんですけど
myapp:/?object=%@ とか myapp://?object=%@ とかでもいけるみたいなんですけど
myapp:?object=%@ だとダメな感じで (URLがnilになる)
一番いいURLのフォーマットとか他にいいデータの載せ方あったら教えてください
0995名称未設定
2014/04/06(日) 20:57:21.90ID:3UCZgO7W0いや、使ってるライブラリの都合です
属性付き文字列にリンクを張るときにNSRangeとNSURLしか指定できないんです
0996名称未設定
2014/04/06(日) 21:14:11.19ID:P0oxT3OU0ふむ。なる(?)
myapp:?object=%@
でもNSURLインスタンスになるけど。queryとか取り出せずに、自分でURL文字列からになるけど
%@の部分をURLエスケープ文字列にしてないとか?でも、myapp:/?object=%@だと問題無いんだよなあ??
スラッシュが一つでも必要なのはRFCとかそういうのでの決まりかなあ
0997名称未設定
2014/04/06(日) 21:26:17.75ID:3UCZgO7W0説明不足でした。
rangeとurl指定するとクリックしたときにdelegateメソッドで、クリックされたリンクに指定したurlが渡されるんですけど
そこでWebページを開くんじゃなくてアプリ固有の動作をさせたいんです
例えば、ツイッターで@twitterJPの文字列にアプリ内だけのリンクを張って、jsonに"id":"twitterJP"とか埋め込んでおいて
そのリンクがクリックされたらWebページ開くんじゃなくてjsonからidを取り出してtwitterJPのユーザー画面を開くみたいな
delegateメソッドは普通のhttpリンクも固有アクション用のリンクも区別せずに投げてくるので、区別するためにURLスキームは固有のに変えるということです
すみませんURLはできてました。queryがnilになってました。
パースの手間考えるとやっぱりスラッシュ挟むのが一番ですかね?
0998名称未設定
2014/04/06(日) 21:37:48.36ID:P0oxT3OU0なるほど
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
と同じようなのがあるのね
myapp:?object=%@
でもschemeはちゃんと取れるでしょ。まあ/一文字付けるだけなんだから、付けとけば
webView:shouldStartLoadWithRequest:navigationType:
のようなのがあるなら、URL中にJSODNとか埋めずにタグ値だけにしてーの、
タグ値からパラメータのDictionaryを作っておいての、そこを参照するとかするけど
まあ、それは別の話しか
0999名称未設定
2014/04/06(日) 21:54:07.47ID:Cc6ugBc20http://anago.2ch.net/test/read.cgi/mac/1396788777/
1000名称未設定
2014/04/06(日) 22:01:22.84ID:3UCZgO7W0はい、schemeはmyapp:?objects〜でも取れます。
問題なのはパラメータ(query)の方で、/一個つけるつけないだけで取れる取れないが変わるので、どうしようかと
できるだけシンプルにしたいのですが、/がないとダメなのはどうしてかなと
RFCの仕様書の見てURIのABNF見てたら
URI = scheme ":" hier-part [ "?" query ] [ "#" fragment ]
って書いてあって、定義辿って行くと
hier-partは空でもいいみたいに書いてあるんですが、よくわからないですね
とりえあず/挟む感じでやってみます、ありがとうございました
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。