[SDK]iPhoneアプリ開発初心者質問箱34[touch][iPad]
■ このスレッドは過去ログ倉庫に格納されています
0001名称未設定
2013/08/19(月) NY:AN:NY.ANID:ykyhR6cZ0■質問する前に■
1. 質問は日本語もしくはObjective-Cで
質問に質問で返されても逆切れしない。それは質問の仕方が悪いってことだよ。
2. どういう内容であれレスをもらったら報告とお礼の言葉を忘れずに。
回答者は自分の時間を使って親切で回答してくれています。
3. 回答者は自分も初心者であった事を忘れずに。
4. マルチポスト(複数のスレに同じ質問を書込むこと)は厳禁!
5. 質問は可能な限り具体的に。
ただ「エラーが出ます」ではエスパーかスタンド使いでなければ答えられません。
エラー内容をちゃんと書きましょう。
6. わからない部分のコードをコピペすると手っ取り早いです。
7. このスレは無料プログラミング教室ではありません。
「○○の仕方を教えてください」という質問はなるべく避けてください。
「自分で調べたけどわからなかった事」を質問するというスタンスを忘れずに。
8. バグを安易にOSや開発環境のせいにしない。
自分の知識の無さを棚に上げて人のせいにするなんて百年早い。
■関連スレ
iOSアプリ 個人開発者の雑談スレ13
http://anago.2ch.net/test/read.cgi/mac/1369912531/
iPhone iPad iOSプログラミング Part1
http://toro.2ch.net/test/read.cgi/tech/1314086681/
【脱獄】iPhoneのJailbreakアプリ開発スレ
http://anago.2ch.net/test/read.cgi/mac/1337945208/
※前スレ
[SDK]iPhoneアプリ開発初心者質問箱33[touch][iPad]
http://anago.2ch.net/test/read.cgi/mac/1370485786/
0756名称未設定
2013/10/06(日) 15:45:09.36ID:w4+qyYfgP0757名称未設定
2013/10/06(日) 15:50:56.04ID:B8UPEKXs04バイト以降はfloatなんで。。
>>756
strncpy((char *)data,"abcd",4);
でなりました、ありがとうございます。
0758名称未設定
2013/10/06(日) 15:55:37.32ID:o8z8zdb700759名称未設定
2013/10/06(日) 16:00:14.28ID:/Gh5AsEX00760名称未設定
2013/10/06(日) 16:20:16.43ID:/mxu/ERO00761名称未設定
2013/10/06(日) 17:37:37.20ID:26NIij/n0そもそも、これやりたかったら
*((char *)data + i) = 'A';
だろう
0762名称未設定
2013/10/06(日) 17:47:21.61ID:w4+qyYfgP0764名称未設定
2013/10/07(月) 09:35:05.13ID:SXy641poiキモ
0765名称未設定
2013/10/07(月) 10:24:51.80ID:vMaEB6Tu00766名称未設定
2013/10/07(月) 10:51:33.64ID:DsvQeiJy00767名称未設定
2013/10/07(月) 11:00:53.06ID:kCd2Q2is0iOS7で、UISearchDisplayController を使用していると、
ステータスバーの上にUISearchDisplayControllerが描画されてしまうことがあります。
これを通常通りに正しく描画するには、どうすればいいのでしょうか?
↓ここを参考にしましたが、
iOS 7 UISearchDisplayController search bar overlaps status bar while searching
http://stackoverflow.com/questions/18925900/ios-7-uisearchdisplaycontroller-search-bar-overlaps-status-bar-while-searching
「self.edgesForExtendedLayout = UIRectEdgeNone;」を使うとステータスバーの下に表示されるようになりましたが、
ステータスバーの背景が真っ黒になってしまったり、テーブルビューの高さがおかしくなったりします。
正しい表示
http://imageshack.us/a/img163/9128/06vx.png
バグった表示
http://imageshack.us/a/img11/8237/corh.png
正しい表示にするための良い方法は他にありませんか?
よろしくお願いします。
0768名称未設定
2013/10/07(月) 12:18:34.58ID:noRHRuJ+P例えば(100,100)から(150,150)に移動するときを考えとします。
通常では暗黙的なアニメーションをしながら(100,100)→(150,150)へと一気に移動しますが、
そこをアニメーションに合わせて(100,100)→(110,110)→(120,120)→(130,130)→(140,140)→(150,150)という逐次的な座標変化にしてほしいのです。
こういった場合、どうすればいいでしょうか?
0769名称未設定
2013/10/07(月) 12:58:33.48ID:K5e5x8Ke0(Viewの)CALayerに、軌跡がBezierPathな、キーが@"position"のCAKeyframeAnimationをくっつける
UIBezierPath *trackPath = /* (100,100)→(110,110)→(120,120)→(130,130)→(140,140)→(150,150) */
CAKeyframeAnimation *positionAnimation = [CAKeyframeAnimation animationWithKeyPath:@"position"];
positionAnimation.path = trackPath.CGPath;
positionAnimation.rotationMode = /* 好みの。kCAAnimationRotateAutoはおもろい */
positionAnimation.repeatCount = 0;
positionAnimation.duration = 0.4;
[animationTagetView.layer addAnimation:positionAnimation forKey:@"TrakingAnimationDAYO"];
のよーな。詳しくはCoreAnimationのドキュメント
0770名称未設定
2013/10/07(月) 13:01:25.20ID:K5e5x8Ke0フルスクリーンでレイアウトする
フルスクリーンなのでステータスバーのバックグラウンドもアプリ(あなたのコード)の責任で
0771名称未設定
2013/10/07(月) 13:25:40.06ID:K5e5x8Ke0あ、
(100,100)から(150,150)
も
(100,100)→(110,110)→(120,120)→(130,130)→(140,140)→(150,150)
も同じやん
びゅーんっ、や、んっびゅーん、じゃなくて、すいー(っ)にしたいなら、UIViewAnimationOptionCurveLinear にすればかな
0772名称未設定
2013/10/07(月) 14:14:20.93ID:kCd2Q2is0レスありがとうございます。
ガイドラインによると、そう定義されているんですね・・・。
ステータスバーは透明になったと書いてありましたし。
0773名称未設定
2013/10/07(月) 15:15:26.60ID:uWKmTw5U0iOS7 対応を機に auto layout に乗り換えようと思うが重い腰があがらない。
誰か背中を押して下さい。
0774名称未設定
2013/10/07(月) 19:24:44.00ID:/BaEOFz800775名称未設定
2013/10/07(月) 19:33:32.25ID:NHaBL2jH0CFBundleVersion in the info.plist が1.2なので、前のバージョン1.11より大きくしてくださいみたいなエラーが出た
多分1.20にすればいけるんだろうけど、この文字列の比較のされ方のルールってどこかに載ってませんか?
0776名称未設定
2013/10/07(月) 19:47:04.06ID:NHaBL2jH0どうすればいいんだろう
0778名称未設定
2013/10/07(月) 19:55:04.96ID:Z9Tat0FC0ルールってどこかに載っているのかは知らんけど、
1.11の次は1.12だろう。1.2にはならないな。1.2を1.20と(誤)表記することもあるから何かやっているのかも。1.21なら大丈夫とか
CFBundleVersionは正規な/普通なバージョン表記にすることは無いよ。単なる連番とか作成日とか。これを機会にそうしてみるとか
0779名称未設定
2013/10/07(月) 20:13:09.77ID:NHaBL2jH0ありがとう
0780名称未設定
2013/10/07(月) 20:41:14.65ID:9lUsTTIc00781名称未設定
2013/10/08(火) 08:45:48.60ID:fCk2yjRX0iOS7で、UISearchDisplayController を使用していると、
ステータスバーの上にUISearchDisplayControllerが描画されてしまうことがあります。
これを通常通りに正しく描画するには、どうすればいいのでしょうか?
↓ここを参考にしましたが、
iOS 7 UISearchDisplayController search bar overlaps status bar while searching
http://stackoverflow.com/questions/18925900/ios-7-uisearchdisplaycontroller-search-bar-overlaps-status-bar-while-searching
「self.edgesForExtendedLayout = UIRectEdgeNone;」を使うとステータスバーの下に表示されるようになりましたが、
ステータスバーの背景が真っ黒になってしまったり、テーブルビューの高さがおかしくなったりします。
正しい表示
http://imageshack.us/a/img163/9128/06vx.png
バグった表示
http://imageshack.us/a/img11/8237/corh.png
正しい表示にするための良い方法は他にありませんか?
よろしくお願いします。
0782773
2013/10/08(火) 09:03:48.16ID:2oXIFGJg0ありがとうございます。ありがとうございます。やっとアプリ制作から足を洗う決心が付きました。
0783名称未設定
2013/10/08(火) 11:38:49.84ID:iBO7W+qy00784名称未設定
2013/10/08(火) 12:52:46.93ID:qmAUfg1i00785名称未設定
2013/10/08(火) 14:47:35.67ID:Cb5LwJTlPXML - NSXMLParser
Plist - NSPropertyListSerialization
NSXMLDocumentをiOSにも!!
0787名称未設定
2013/10/08(火) 20:57:54.97ID:acxM92y/00788名称未設定
2013/10/08(火) 22:02:50.11ID:5A9ApfsB00789名称未設定
2013/10/08(火) 22:05:10.67ID:sxVQjxXt0- (void)drawRect:(CGRect)rect
{
UIImage *image;
image=[UIImage alloc];
image=[UIImage imageNamed:@"aiu.png"];
[image drawAtPoint:CGPointMake(0, 0)];
NSLog(@"a")
}
コンソールに「a」と表示されるのでこの部分のプログラムが実行されていることは確かなのですが・・
0790名称未設定
2013/10/08(火) 22:19:02.53ID:sxVQjxXt0>>789
0791名称未設定
2013/10/08(火) 23:18:33.95ID:oxhA1vof00792名称未設定
2013/10/08(火) 23:22:30.33ID:HaBq4x/w00793名称未設定
2013/10/08(火) 23:43:11.32ID:Fz7EvqyG0にたような症状で困っているんだが、よかったら解決策を教えろください。
とりあえず、20ポイント下げで急場をしのいでいますが。
0794名称未設定
2013/10/08(火) 23:49:23.25ID:LYB88/5m00796名称未設定
2013/10/09(水) 02:55:12.14ID:lkR5uXPu0フルスクリーンでレイアウトする
フルスクリーンなのでステータスバーのバックグラウンドもアプリ(あなたのコード)の責任で
0797名称未設定
2013/10/09(水) 05:59:54.18ID:8xMQEuzw0ちょっと待てimage=[UIImage alloc];ってなによw
参考書にそんなこと書いてるのかw
0798名称未設定
2013/10/09(水) 07:31:29.56ID:9rur3c/x00800名称未設定
2013/10/09(水) 13:23:20.50ID:JFWT/nMl0imagePickerControllerで写真撮影後のコールバックがかえってこないんですが
なにか情報をお持ちの方いらっしゃいますでしょうか。
下記のような宣言を行っています。
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
0801名称未設定
2013/10/09(水) 13:30:07.33ID:KqKc3DKD0それを言うならwantsFullScreenLayoutがDeprecatedですよですよ
言い換えれば、フルスクリーンでレイアウトだけになったのでwantsFullScreenLayoutはYESにしかならない。したがって、あっても無くても意味が無くなった...んー、なんのこっちゃ
0803800
2013/10/09(水) 13:38:45.95ID:JFWT/nMl0iOS6の端末にアプリを入れた場合は問題なく呼ばれるんですけどね・・・
今確認するとimagePickerControllerDidCancelも呼ばれないみたいで悩みたおしています。
0804名称未設定
2013/10/09(水) 13:47:50.04ID:KqKc3DKD0UIImagePickerControllerDelegateだけを実装し、UIImagePickerControllerインスタンスを作って呼ぶだけのアプリを作って試してみたら?
特になんか複雑に設定するということも無い部分でiOS7でえとかは無いなあ
まあ、同じように特になんか複雑に設定するということも無い部分でiOS7でえで悩んでいるんだろうけど
0805名称未設定
2013/10/09(水) 14:01:24.37ID:KyuEvtW1Pview.backgroundColor = [UIColor redColor];
[self.view addSubview:view];
[UIView animateWithDuration:1.2
delay:0
options: UIViewAnimationOptionAutoreverse
animations:^{
CGAffineTransform scale = CGAffineTransformMakeScale(1.5,1.5);
[view setTransform:scale];
}
completion:^(BOOL finished){
view.transform = CGAffineTransformIdentity;
}];
シミュレータだとviewが大きくなったあと元のサイズにもどるのですが、
実機だとアニメーションが終了時に何故か一瞬だけviewが大きくなります。
実機でもシミュレータと同じ動きにするためにはどうしたらいいでしょうか。
0806名称未設定
2013/10/09(水) 16:48:18.53ID:VBvHKpL80おしえて昔からやってるおじいさん
0807名称未設定
2013/10/09(水) 17:41:25.20ID:KqKc3DKD0completion:にブレークポイントを付けて止めてみればわかるように、completionに来る(直)前に現在のtransformの状態で描画される
UIViewAnimationOptionAutoreverseは使わないでかなあ
0808名称未設定
2013/10/09(水) 18:17:11.87ID:AtFnNfS40UIImagePickerControllerDelegateの宣言抜けてるとか?
iOS6で問題無いのは、どこかで読み込むソースファイル切り分けてるからとか?
これくらいしか想像つかないな〜。
0809名称未設定
2013/10/09(水) 18:40:34.62ID:aBrrzrTJ00810名称未設定
2013/10/09(水) 18:53:18.53ID:KqKc3DKD0何のことを言っているのかわからないが、
エディターのバックグラウンドなら、Preferences > Fonts&Colors
アプリのバックグラウンドなら、UIVViewControllerのviewのbackgroundColor
共に、Xcode 4 も Xcode 5 も同じなのでこれらとは違うのか??
0811名称未設定
2013/10/09(水) 18:57:54.27ID:G9tPFKdY00812名称未設定
2013/10/09(水) 19:03:36.42ID:8xMQEuzw0まずAutoreverseの指定は Must be combined with the UIViewAnimationOptionRepeat option.とあるから
options:UIViewAnimationOptionAutoreverse | UIViewAnimationOptionRepeat と指定。
で、リピートカウントを追加するのが正しいかな↓
animations:^{ [UIView setAnimationRepeatCount:1.0]; //この行を追加
ただこれでも実機では>>805のようになるので、Autoreverse使わないでcompletionで戻したら?
CGAffineTransform scale = CGAffineTransformMakeScale(1.5,1.5);
[UIView animateWithDuration:0.6
delay:0
options: UIViewAnimationOptionCurveLinear //とりあえずリニア
animations:^{ [view setTransform:scale]; }
completion:^(BOOL finished){
[UIView animateWithDuration:0.6
delay:0
options: UIViewAnimationOptionCurveLinear
animations:^{ view.transform = CGAffineTransformIdentity; }
completion:^(BOOL finished){
}];
}];
0816800
2013/10/09(水) 20:23:20.59ID:JFWT/nMl0ありがとうございます。
UIImagePickerControllerDelegateの宣言もしていますね。
とりあえずは簡単なプロジェクトを作ってテストしてみようと思います。
0817名称未設定
2013/10/09(水) 21:08:00.83ID:pgZgCxqG0カスタムクラスのinitメソッドをオーバーライドして、プロパティの値を使って初期化処理をしたいです。
CustomClass *class = [CustomClass alloc]init];
class.property = hoge;
としても先にinitされていて、その時にプロパティの値を参照して初期化処理をしてしまうので、hogeが反映されません。
かといって
CustomClass *class;
class.property = hoge;
class = [[CustomClass alloc]init];
としてもhogeを入れた時にはclassは存在してないので反映されません。
どうすればいいんでしょうか?
また、UIViewなどのプロパティは初期化の後に変更しても反映されます。
これはどういう仕組なのでしょうか?
0818名称未設定
2013/10/09(水) 21:18:39.91ID:8xMQEuzw0CustomClassのpropertyのsetterをオーバーライドして、その中で処理。
- (void) setProperty:(int)property { //propertyがintなら
_property = property;
//ここで処理
}
0820名称未設定
2013/10/10(木) 00:16:58.11ID:eCbD3SVp00821名称未設定
2013/10/10(木) 00:41:13.13ID:J2xhDY5u0こう書けばわかるか?
- (id) initWithValue:(int)value {
self = [super init];
if (self != nil) {
self.value = value;
}
return self;
}
- (void) setValue:(int)value {
_value = value;
//初期化処理
}
0823名称未設定
2013/10/10(木) 01:00:43.35ID:7tnjy6Xm0やっぱおかしいの?これ
とりあえずインスタンス生成するときは
alloc(メモリ確保)してからって書いてあったから書いたんだが!!!
0824名称未設定
2013/10/10(木) 01:10:11.20ID:J2xhDY5u0+allocでインスタンスを生成(未初期化)した後、+imageNamedでもう一度生成してる。
↓つまりこれだけでええねん。
UIImage *image = [UIImage imageNamed:@"aiu.png"];
[image drawAtPoint:CGPointMake(0, 0)];
0825名称未設定
2013/10/10(木) 01:10:28.26ID:eCbD3SVp00826名称未設定
2013/10/10(木) 01:32:04.93ID:7tnjy6Xm00827名称未設定
2013/10/10(木) 04:19:26.40ID:HfktidPb0というか、変数に代入する時点で前の値は破棄される(というと語弊がありそうだが…)だろ?
image=[UIImage alloc];
で、imageにUIImageをallocだけしたもの(インスタンスA)を入れて、
image=[UIImage imageNamed:@"aiu.png"];
直後にいきなりAを捨てて、imageNamed:で新たに生成した別のもの(インスタンスB)を入れてる訳だ。
普通に考えておかしいだろ。
image=[UIImage alloc];
した後で、
[image initなんちゃら];
するなら、Aを初期化している訳だから、まだ分かるが、その場合も、
image = [[UIImage alloc] initなんちゃら];とまとめて書くのが普通だ。
ちなみに、imageなんちゃらはコンビニエンスコンストラクタと呼ばれていて、
既にautoreleaseされたインスタンスを返すクラスメソッドだ。
コンビニエンスコンストラクタは、特に言語の仕様として決まっている訳じゃないが、クラスメソッドであり、
NSStringならstringなんちゃら、UIImageならimageなんちゃらと、返すオブジェクトの種類の名前で始まるのが慣例だ。
単にalloc+init+autoreleaseを呼び出して返してるだけのものもあるし、
内部で同じ不変インスタンスを複数作らないように工夫したり、Abstract Factoryパターンを実装しているものもある。
ARCが有効なら、alloc+initしても、コンビニエンスコンストラクタを使っても特にその後の書き方は変わらない。
autoreleaseせずに返すnewなんちゃらというのもあるが、普通は使われない。C++やJavaから来た人にとっては、馴染みがあるのはこっちだろう。
0828名称未設定
2013/10/10(木) 15:55:11.97ID:ObTVdm8f0お前頭いいな
0829名称未設定
2013/10/10(木) 17:43:19.84ID:2K/GuCrs0Xcode5ですが,「Validate... 」をクリックし,iTunes Connectにログインしたあと
「Choose a profile to sign with:」のダイアログで
「No Identities a available for signing」とでます。
そこで
左の「Download・・・」をクリックした後,適切にセレクトして(選択肢は一つですが)
Chooseボタンを押すと落ちてしまいます。
また右の「Import・・・」をクリックした後「DevProfile.developerprofile」ファイルを選択しても
落ちてしまいます。
connect1.apple.com 4.6.*.db
を消すとよいと,どこかのサイトで書いてあったのでそれもやりましたが,ダメでした。
対策を教えてください。
0831名称未設定
2013/10/10(木) 22:33:44.08ID:owcvtrTYP0832名称未設定
2013/10/10(木) 23:35:51.87ID:Jtg271Fj0完全にiOS開発用なので安いのがいいです
やはりMac miniがいいんかな?メモリとSSDは自分で足したら快適になるかな
0833名称未設定
2013/10/11(金) 00:25:04.29ID:/BCg64wa0とりあえずARCでやっておけば
4GBのパソコンでメモリ不足が起きるってことはありえないって事でおk???
0834名称未設定
2013/10/11(金) 00:29:51.18ID:/BCg64wa0コーディングしてるときに「アクティビティモニタ」でメモリの状況みたら
緑色の部分(空き部分)がほとんどなくなってたから不安になったんだ。
0835名称未設定
2013/10/11(金) 00:36:11.94ID:c5yWQXbB00836名称未設定
2013/10/11(金) 00:38:43.92ID:HOYhId340メモリリークの心配が「それほど」無くなるというだけ。実際に必要ならARCも何も関係無い
>>834
青い部分が多くを占めているのなら気にしなくてもいい。ファイルキャッシュがそのほとんどだから
赤と黄色が多くを占めているのなら、上のリストでどれがメモリを喰っているのか見るのがいい
0837名称未設定
2013/10/11(金) 01:37:03.87ID:4HsA7p/HP0838名称未設定
2013/10/11(金) 03:11:28.19ID:iFvDoypr01度Mac使うともうWindowsには戻れないよ
0839名称未設定
2013/10/11(金) 06:11:54.93ID:Ez3aMcH+0ノートで開発すんの?あとMac対Winみたいなくだらん信者合戦やめろや
0840名称未設定
2013/10/11(金) 07:42:43.97ID:JBQQryLH0快適に使うならSSDとの交換も視野に入れた方がいいかも
0841名称未設定
2013/10/11(金) 07:51:33.45ID:KPxE15hm0あとipad retinaのシミュレータは10分経っても動かなかった。
>>839
ノート対デスクトップの争いがしたいのか?時代遅れもいいところだ。
0842名称未設定
2013/10/11(金) 09:07:33.83ID:FVk+PQ2PP0843名称未設定
2013/10/11(金) 10:03:53.29ID:a85exrl100844名称未設定
2013/10/11(金) 10:06:50.09ID:1PQGOMZ500845名称未設定
2013/10/11(金) 10:24:54.81ID:a85exrl100846名称未設定
2013/10/11(金) 12:00:32.90ID:QAWINqeJ0ググったら4月頃に削除できるようになったらしいのですが、削除ボタンが見当たりません。
一度削除できるようになった後に、改悪されて再度削除できなくなったのでしょうか?
App ID削除の情報はこのサイトをみました。
http://mushikago.com/i/?p=2779
0847846
2013/10/11(金) 13:03:25.48ID:QAWINqeJ0http://impulsiveforever.wordpress.com/2013/04/08/app-id%E3%81%8C%E5%89%8A%E9%99%A4%E5%8F%AF%E8%83%BD%E3%81%AB/
0848名称未設定
2013/10/11(金) 13:07:39.12ID:+6tHdhCs0削除できるようになっていたとは、知らんかった。
で、今みてみたら、削除しなくても、使っていないやつ(昔間違って作ったもの)は消えていた。。。
0849名称未設定
2013/10/11(金) 13:18:27.81ID:zQucQ/5m0Master ViewとDetail Viewを繋ぎ遷移出来るようにしたのですが、Detailから
Masterに戻ってくると上部のタイトルが消えています。(デフォルトでMasterと
書かれている所)
Xcode5.0でTableViewはStatic Cellsで作成しています。
どうかご教示願います。。
0850422
2013/10/11(金) 13:32:06.50ID:zQucQ/5m0Segueの設定をPushではなくModalにしていたせいかもです。
Pushにしたら大丈夫でした….
0853名称未設定
2013/10/11(金) 22:45:19.06ID:BNe/mAZF0wっwwするいみあんの?ばろすまん!ってかんじやねん!
0854名称未設定
2013/10/11(金) 22:52:29.50ID:c5yWQXbB0プロトコルの仕組みを覚えろ。
0855名称未設定
2013/10/11(金) 22:57:37.00ID:DNjnoOJk0Objective-Cの仕様的には可能だが、
そんなおそろしくめんどくさいことをする意味もなく。
あれはApple様が「こういう時になんかさせたいでしょ?」とあらかじめ
既存クラスにわざわざつけてくれている条件分岐点。
「なかったら」なんて考えたくもない。
■ このスレッドは過去ログ倉庫に格納されています