[SDK]iPhoneアプリ開発初心者質問箱48[touch][iPad] [無断転載禁止]©2ch.net
レス数が900を超えています。1000を超えると表示できなくなるよ。
iPhone, iPod touch用アプリケーションの開発を始めたばかりの初心者向け質問スレ。
■質問する前に■
1. 質問は日本語もしくはObjective-C/Swiftで
質問に質問で返されても逆切れしない。それは質問の仕方が悪いってことだってばよ。
2. どういう内容であれレスをもらったら報告とお礼の言葉を忘れずに。
回答者は自分の時間を使って親切で回答してくれています。
3. 回答者は自分も初心者であった事を忘れずに。
4. マルチポスト(複数のスレに同じ質問を書込むこと)は厳禁!
5. 質問は可能な限り具体的に。
ただ「エラーが出ます」ではエスパーかスタンド使いでなければ答えられません。
エラー内容をちゃんと書きましょう。
6. わからない部分のコードをコピペすると手っ取り早いです。
7. このスレは無料プログラミング教室ではありません。
「○○の仕方を教えてください」という質問はなるべく避けてください。
「自分で調べたけどわからなかった事」を質問するというスタンスを忘れずに。
8. バグを安易にOSや開発環境のせいにしない。
自分の知識の無さを棚に上げて人のせいにするなんて百年早い。
9. 質問する前にもう一度よく考えてから質問しよう。 >>823
毎回playしています。
そのplayする際に呼び出すプログラム中で、preparatoplayが記述されていました。 prepareToPlay自体が重いので事前にやっておくってことさ 同様の症状が発生する単機能のアプリ作って実験してみては >>825
アドバイス感謝致します。
もう何が何だか分からなくて、効果音を多重に鳴らすだけでカクカクしてしまうので、諦めの境地です。
音を消すと全く問題ありません。
音の鳴らし方の工夫もして見ましたが、かなりマシになるものの、多少のカクカクは残ります。
(マルチスレッドと、効果音を複数定義しておいて、順番に鳴らしていく等) ノートン使っている人で、xcodeがフリーズしている人いますか?
symdaemonというプロセスがxcodeをフリーズさせているようなのですが、対処法がわかりません。再インストールしてもダメでした。 使ったことねーけどOpenAL? はハードで鳴らすだろうから試したら >>828
それxcode関係ないから他のスレで聞いたら? >>829
アドバイス感謝致します。
OpenALをネットで調べてAvaudioPlayerと差し替えたところ、一切カクカクが無くなりました。
しかし問題が発生しました。
シューティングのあたり判定で短い時間差で命中した際に、音が1回しか鳴りません。
AvaudioPlayerに戻すと短い時間差でも音が連続して鳴ります。
せっかく負荷が減ったのに残念です。
OpenALは同時再生に不向きなのでしょうか? まだ解決してなかったのか。。。
prepareToPlayで解決すると思うんだが>>824のやり方がマズイのは理解して修正したの?
OpenALでも事前にロードしておいてイベント発生時はそれを鳴らすだけなのは同じ
とりあえず問題が発生する最小限のコードを提示してよ 大体OpenALみたいな手合は複数インスタンス作って
それぞれで勝手に鳴らす作りになってると思う
全く試してねーけど //あらかじめ効果音ファイルを読み込んでおく
// OpneALデバイスを開く
ALCdevice* device;
device = alcOpenDevice(NULL);
// OpenALコンテキスを作成して、カレントにする
ALCcontext* alContext;
alContext = alcCreateContext(device, NULL);
alcMakeContextCurrent(alContext);
// バッファとソースを作成する
alGenBuffers(10, _buffers);
alGenSources(10, _sources); int i;
for (i = 0; i < 10; i++) {
// サウンドファイルパスを取得する
NSString* fileName = nil;
NSString* path;
switch (i) {
case 0: fileName = @"0"; break;
case 1: fileName = @"1"; break;
case 2: fileName = @"2"; break;
case 3: fileName = @"3"; break;
case 4: fileName = @"4"; break;
case 5: fileName = @"5"; break;
case 6: fileName = @"6"; break;
case 7: fileName = @"7"; break;
case 8: fileName = @"8"; break;
case 9: fileName = @"9"; break;
} path = [[NSBundle mainBundle] pathForResource:fileName ofType:@"caf"];
// オーディオデータを取得する
void* audioData;
ALsizei dataSize;
ALenum dataFormat;
ALsizei sampleRate;
audioData = GetOpenALAudioData(
(CFURLRef)[NSURL fileURLWithPath:path], &dataSize, &dataFormat, &sampleRate);
// データをバッファに設定する
alBufferData(_buffers[i], dataFormat, audioData, dataSize, sampleRate);
// バッファをソースに設定する
alSourcei(_sources[i], AL_BUFFER, _buffers[i]);
} -(void)openal_playsound:(int)_index {
// オーディオを再生する
alSourcePlay(_sources[_index]);
}
if (当たったら) {
[self openal_playsound:1];
}
当たり判定はUIDynamicAnimator、UICollisionBehaviorで行なっています。
短い時間で連続で複数にヒットすると効果音がヒットした数より少なく鳴ります。
画面はスムーズです。
Avaudioplayer時は連続で効果音が鳴っていました。ただ、画面がカクカクします。 あー、再生中のsourceに対してalSourcePlayすると最初から再生しなおすから
間隔が短くて1回しか聞こえない感じになってるっぽいね
複数sourceの同時再生はできるけど一つのsourceの同時再生はできないよ
キューを使うかイベント発生時に再生中でないsourceを使うようにするかかな >>838
効果音の再生手段はOpenALのままで、
あらかじめ複数の効果音を読み込んで再生するのではなく、毎回効果音を読み込んで再生するように変更しました。
毎回読み込むことで、同じ効果音でも別扱いになるので、重なって鳴らしてもうまく鳴りました。
画面のカクカクは、毎回読み込む方式に変更しても変わりなく軽いです。
色々アドバイスいただきまして、ありがとうございました。 バッファに読み込むのは事前にやっておいて
イベント発生時にsourceのプールから使用中でないのを取得して
それにバッファを紐付けてからalSourcePlayね
↓この辺見て
https://books.google.co.jp/books?id=QoxeAqTvevIC&pg=PA394
https://vimeo.com/6440991 Appleの据え置き型テレビ発売されてくれないかな。シャープや東芝のテレビが生産中止でも
ソニーのテレビを使う気にはなれない。
アップルの製品ですべて統一したい。アップルの据え置きTv出てくれないかな。 据え置き型じゃなかった。薄型のテレビのApple版 ビリヤードの球みたいなのを永久に転がしたくてセオリー通りにやったんだけど、
低速だと止まってしまうので、どこがおかしいのか見てほしいです
XcodeでGameのプロジェクトを新規作成したときのGameSceneクラスを
次の内容に書き換えただけです
これより低速にすると跳ね返らずに止まってしまいます class GameScene: SKScene {
override func didMove(to view: SKView) {
// blocks
var n = SKShapeNode.init(rect: CGRect(x: -20.0, y: -5.0, width: 40.0, height: 10.0))
n.fillColor = .gray
n.physicsBody = SKPhysicsBody(rectangleOf: n.frame.size)
n.physicsBody?.categoryBitMask = 0x01
n.physicsBody?.isDynamic = false
n.physicsBody?.affectedByGravity = false
n.physicsBody?.linearDamping = 0.0
n.physicsBody?.friction = 0.0
n.physicsBody?.restitution = 1.0
n.position = CGPoint(x: 0.0, y: 200.0)
self.addChild(n)
n = n.copy() as! SKShapeNode
n.position = CGPoint(x: 0.0, y: -200.0)
self.addChild(n)
(続く) // ball
n = SKShapeNode.init(circleOfRadius: 4.0)
n.fillColor = .blue
n.physicsBody = SKPhysicsBody(rectangleOf: n.frame.size)
n.physicsBody?.categoryBitMask = 0x10
n.physicsBody?.collisionBitMask = 0x01
n.physicsBody?.affectedByGravity = false
n.physicsBody?.linearDamping = 0.0
n.physicsBody?.friction = 0.0
n.physicsBody?.restitution = 1.0
self.addChild(n)
n.physicsBody?.applyImpulse(CGVector(dx: 0.0, dy: 0.77)) // 0.76だと止まる
}
} NSURLSessionを使ってるとたまにTIC Read Statusってログに出るんですけどなんなんでしょうか >>846
その閾値はSpriteKitではいじれないという事でしょうか
簡単な衝突なので自前で組んだほうが良さそうですね
ありがとうございました 半年程おもに書籍でSwiftの勉強しており久しぶりに来ました、どうしても分からない事ありご教授お願いします。
質問の仕方も見苦しい言い方になりますが要は 「物体を(2.3時間の間でランダムに)1画面の中で移動させたいです、上に行ったり左に行ったりランダムで、どの様な方法ありますでしょうか。
どうか宜しくお願い致します。 >>850
そうですね分かりにくいですね、どうもありがとう御座いました、早速見てみます。 大きめのxmlをパースするために、一気にxmlをメモリに読みこませずに、少しずつメモリに入れながらパースしたいのですがどのような方法があるでしょうか?
JavaのRandomAccessFileのようなAPIはあるでしょうか? Javaで言うRandomAccessFileに相当するのはFileHandle >>853
<(_ _*)> アリガトございます。 >>854
<(_ _*)> アリガトございます。 一度appstoreに公開したアプリを停止して、違うデベロッパーアカウントで再び公開することってできますか? できるよ。
新しくアプリを申請しなおすか、または異なるアカウント間でアプリの譲渡ができる。 もう一度申請すればいいんですね!
ありがとうございます〜 昨日からiPhoneアプリを作り始めました
初歩的な質問で申し訳ないのですが
数値を入力するテキストフィールドを作ったのですが
キーボードが一度出ると隠すことができません
Doneボタンを用意して入力が終わればキーボードを閉じたいのですが
どうすればいいのでしょうか?
Attributes inspectorのReturn KeyはDoneを設定しています
しかしDoneボタンは表示されません
よろしくお願いします
https://i.imgur.com/W9WHGIc.jpg なるほどそれは仕様なのですねありがとうございます
無理やりつけることも出来そうですが
そもそも何かが間違ってるような気がしてきました
質問が2つあります
やりたいことはフィールドに数値のみを入力させたいです
その場合のアプローチとしてNumberpadを使うのは
間違ってるということでしょうか?
(Alphabetや日本語の入力は禁止したいです)
Numberpadは基本Doneボタンがつかない仕様ですが
このキーボードはどういう用途で使用するためのものなのでしょうか?
正直入力後にキーボードを閉じれない状況がどういう場面において
有効なのか全く想像がつかず、、、 なんか調べてみるとみんなそれやりたいのに
デフォルトで出来なくて困ってるようですね
現状の仕様の中ではアプローチとしては正しくて
仕方なく自分で実装するしかなさそうですね
しかしなんという不便なつくり。。。 フィールド外をタッチしてキーボード隠すようにしたら。
うちは小数点入れられないから諦めた 漫画村ってやってることはiTunes Storeといっしょだよな。
無料でデジタルコピーをばらまいてるだけ。
漫画村対策には、憲法違反の検閲ではなく、一応の下手人としてiOSアプリ開発者の逮捕することが望ましいね。 悔しいのー、悔しいのー
アプリが作れないからアプリ開発者disってんだねw 最近のiPhone(later 7?)って、
H.265のハードウェアエンコーダーが入ってると思うのですが、
動画ファイルをiPhoneでエンコードさせることって、
でけまへんか? 初カキコです
どなたか教えてください
当方英語が苦手な上にややこしい理由でリジェクトされてしまいました
メタデータリジェクトなのですが情報修正してその説明はresolution centerで返信すべきでしょうか
情報自体を修正すれば勝手に審査を再開してくれますか? >>873
英語が苦手なら連絡は日本語ですればいいよ ipadでyoutubeを見ていたら勝手に画面が大きくなり、右下の四角をタップしても
小さく戻りません。
どうしたらいいか教えてください。 アプリ開発用のAppleIDですが、
個人使用のものとは分ける、分けない、どちらが推奨でしょうか?
実際に使い勝手がいいのはどちらなのか、お伺いしたいです 俺は分けているけど正直どっちでもいいと思う。お好きなように。 >>882
ありがとうございます
以前は別アカウントが推奨だったらしい情報を見たのですが、最近の書籍やサイトでは記載がないのでどうなのかなと思っていました
周りに実際に開発している人がいないので助かりました、ありがとうございました 失礼します。
上野パンダライブを40分、iPadに録画したのですが、保存されましたというメッセージが出ないまま90分が過ぎました。
これは録画失敗ということなのでしょうか?
10分、いや5分くらいずつ細切れ録画した方がいいですか?
回答よろしくお願いします。 パンダの肖像権は中国が管理してるから撮影できないようになってる WkWebViewで画像をブロックしたいのですが
以下のようにブロックリストをWKContentRuleListに登録すると一般的なImageはブロックできますが
"trigger": {
"url-filter": ".*",
"resource-type": ["image"]
},
"action": {
"type": "block"
}
最近流行りのData URI Scheme(data:image/pngなどの形式)で書かれた画像がブロックできません
Data URI Schemeをブロックするにはどのような方法があるでしょうか?
またWkWebViewで全てのリクエストをフックする方法はないでしょうか? Youtuberや文字だけ動画を検索結果から除外させただけの動画アプリって需要あると思う? 今更 子供向けの絵本アプリとか出してもウケないかな? 本の内容次第ではまだ需要あるかな 絵本を作った方がいい気がする
ゲーム感覚でできる絵本的な何かにするなら話は別だけど 何の動きもないふつうの絵本はリジェクトされる。
インタラクティブ要素は必須。 >>893だけど
色々なコメントありがとう 子供が喜びそうな本を作ってみる 。 立体物が出る飛び出る絵本あるやん?幼稚園とかに置いてあって、誰かしらがボロボロに壊しちゃうやつ
ARなんか何に使うんだよいらねーよって思ってたけど、そういうのいけるんじゃね? 世のお母さんたちは絵本を情操教育の一環として読ませてるから
オッサンの感覚でデジタルエンターテイメントとして絵本作ってもお母さん達には刺さらないんじゃないかな アプリじゃなくてiBooks Authorで電子本作ればいいのじゃないかな 変数の書き方でお伺いしたいです
var name=0
name+1 ではなく、
name=name+1
と指定しなければいけないのは何故でしょうか? =は代入の印
name+1 で値は出るけどそれをどこかに格納しないと使えない name=name+1
の別表記で
name++ とか ++name
というのがある >>905
Swift3ではそれ無くなったんじゃなかったけ。var name=0からSwiftみたいだけど ありがとうございます
ID変わりましたが>>903です
丁寧にありがとうございます、なんとなくの理解しかまだできないですが、実践的に使って理解を深めます >>907
++演算子のオーバーライドでインクリメントを実現できるはず。
ネーミング制限でできない? >>903
もともとのコンピュータの基礎的な動作が
「Aという場所のデータに何か処理をしてBに入れろ」だったので
大昔に設定された汎用的な書き方が例えば
B=A+1
この=は数学の比較の意味と違うので継続的に問題になっているが
最初の頃に決められて普及したのでなかなか変更されない。
過去には←とか特殊記号使う案もあったりしたが。
そして汎用的な書き方がで自分自身に上書き(書き戻し)をする表記が
A=A+1
みたいになる。=は代入を表す記号。 何故できないのか?
a=a+1をa+1と書いてもいいという仕様にしなかったから
何故しなかったのか?
見苦しいからじゃないかな
a+1
b=b+c
d=sqrt(d)
似たような処理がなのに一つだけ様式が違うとか気持ち悪い。
揃えるならb+cやsqrt(d)も書けるようにして貰わないと。使わないけど。 いや=を代入記号として扱うから問題なだけだろ
ただa+1って書いてその結果はどこに突っ込むかなんてわからんだろ インクリメントに限っての話じゃないの。>>913の誤読っぽいのと、妄想的な間違いwはあるけど ああ、そもそもの>>903がそんなんなのか。しつれい
a+1 aに1を足す(当然aが変わる)
b+c bにcを足す(当然bが変わる)
e=f+g fとgを足してeに入れる
って感じか。まあ、それはそれだアリのような気がするwちょっと複雑になると破綻しそうな気もしないでもないけど
ソフトウェアでの変数という概念を理解すれば自ずと a=a+1 になるって理解できるんじゃないのかな 最初に=を代入に使った奴がハゲなんだが
それそのまんま継承したBASICとCはより罪深いハゲだ PASCALだったか? は代入は:=なんだけどCに駆逐されてしまった
>>917
C系列の言語だと副作用が問題になってひどいことになる
3行目の例だとfにf+gが入ってしまってループで使ったりすると大惨事 pascalより前(だよな?)のfortranもそうでなかったかなあ。そういう意味ではpascalが異端かなあw
まあ、算数/数学知識からいきなり a=a+1 とか、なんじゃこりゃと思うのはしょうがないな。俺がそうだったからw
アリってのはマジアリってわけではないよ。まあ>>903がそう思ってもなんら不思議ではないかなっていう FORTRANはBASICのお父さんだし、= そのままでしょ
当時からあるやつだとAPLが ← だったりLISPは代入めったにして=使わなかったりしたけど めったにして → めったにしなくて、、
でした
まあa = a + 1 は 変数使わないとわかりやすい
1 + 1 だけだと 2 にはなるけど後で使えない レス数が900を超えています。1000を超えると表示できなくなるよ。