1read 100read
2011年10月1期新・mac[SDK]iPhoneアプリ開発初心者質問箱21[touch][iPad] TOP カテ一覧 スレ一覧 削除依頼
・ 次のスレ
スタバでドヤ顔でMacbook Air弄る奴を晒す
■iPhone板でMac勧誘すんなよキチガイ
Macでゲーム Part2
Macのある部屋を見せるスレ Part140


[SDK]iPhoneアプリ開発初心者質問箱21[touch][iPad]


1 :12/01/05 〜 最終レス :12/01/10
iPhone, iPod touch用アプリケーションの開発を始めたばかりの初心者向け質問スレ。
■質問する前に■
1. 質問は日本語もしくはObjective-Cで
2. どういう内容であれレスをもらったら報告とお礼の言葉を忘れずに。
 回答者は自分の時間を使って親切で回答してくれています。
3. 回答者は自分も初心者であった事を忘れずに。
4. マルチポスト(複数のスレに同じ質問を書込むこと)は厳禁!
5. 質問は可能な限り具体的に。
 ただ「エラーが出ます」ではエスパーかスタンド使いでなければ答えられません。
 エラー内容をちゃんと書きましょう。
6. わからない部分のコードをコピペすると手っ取り早いです。
7. このスレは無料プログラミング教室ではありません。
 「○○の仕方を教えてください」という質問はなるべく避けてください。
 「自分で調べたけどわからなかった事」を質問するというスタンスを忘れずに。
8. バグを安易にOSや開発環境のせいにしない。
 自分の知識の無さを棚に上げて人のせいにするなんて百年早い。
■前スレ
[SDK]iPhoneアプリ開発初心者質問箱20[touch][iPad]
http://anago.2ch.net/test/read.cgi/mac/1321865528/
■本スレ
iPod touch/iPhone ネイティブアプリ製作 ver.16
http://anago.2ch.net/test/read.cgi/mac/1312723856/

2 :
■参考書籍
【入門書】
 電子書籍「iOSの教科書」iOS 5とXcode 4.2に完全対応(ARCオン)(ウック/パブー 2011/12)赤松正行、神谷典孝
 まるごと学ぶiPhoneアプリ制作教室(ソフトバンククリエイティブ 2011/9)瀬谷啓介
 iOSプログラミング入門 - Objective-C + Xcode 4で学ぶ、iOSアプリ開発の基礎(ビー・エヌ・エヌ新社 2011/6)大津真
 iPhone/iPad/iPod touchプログラミングル―iOS 5/Xcode 4対応(ソシム 2011/11)布留川英一
【Objective-C/Xcode】
 詳解 Objective-C 2.0 第3版(ソフトバンククリエイティブ 2011/12)荻原剛志
 Objective-C プログラマーズル(技術評論社 2011/12)柴田文彦
 エキスパートObjective-Cプログラミング(インプレスジャパン/達人出版会 2011/11)坂本一樹
 Xcode 4 入門 for iOS/Mac OS X(秀和システム 2011/9)柴田文彦
 iOSデバッグ&最適化技法 for iPad/iPhone(秀和システム 2010/11)國居貴浩
【中・上級】
 iPhoneアプリ設計の極意―思わずタップしたくなるアプリのデザイン(オライリージャパン 2011/6)Josh Clark
 iPhoneプログラミングUIKit詳解リファレンス(リックテレコム 2010/1)所友太
 iOS4プログラミングブック(インプレスジャパン 2011/1)畑圭輔ほか
 詳解iOS5プログラミング(秀和システム 2011/12)沼田哲史
 iOS開発におけるパターンによるオートマティズム(ビー・エヌ・エヌ新社 2011/2)木下誠
【その他】
 iOS WEB APIマッシュアップ入門for iPad/iPhone(秀和システム 2011/5)不破守康、小田実
 Smartphone Ads iPhone・Androidアプリへの広告の実装と管理テクニック(ソフトバンククリエイティブ 2011/11)
 iPhoneデジカメプログラミング(ソフトバンククリエイティブ 2011/3)細谷日出海
 iPhone Core Audioプログラミング(ソフトバンククリエイティブ 2009/11)永野哲久
■他
iOS Reference Library (日本語Webドキュメント)
http://developer.apple.com/jp/devcenter/ios/library/japanese.html
App StoreへのiPhoneアプリの登録手順のまとめ(Xcode4環境)
http://www.facebook.com/note.php?note_id=153450554720309

3 :
質問なんですが、
Mac上でエミュレータで動かすのと、
Iphone実機で動かすのは動作にどの位差があるんですか?
エミュレータでスルスル動いてるのは参考になりませんかね...

4 :
その逆、シミュレータでスクロールめっちゃ重いけど実機だとヌルヌルって場合もある。
あとシミュレータではメモリ容量がMacに積んであるだけになった気がする。

5 :
ガセ。
シミュレータではCPUはシミュレーションしません。
メモリ不足はシミュレート可能。

6 :
>>3
エミュレータでスルスル動いてるのは参考になりませんかね...
全然参考にならない。3DCG辺りは実機の方が高速だったりするが、
実機はメモリアクセスが劇遅。
>>5
メモリ不足はシミュレートできない。
シミュレータにはMemory Warningを送るコマンドがあるが、
これは警告メッセージをUIViewController等に送るだけで、
メモリ不足とは別物だから。

7 :
>>3
開発者だったら
エミュレータとシミュレータの区別はつけようよ
”成り代わり”ではなく”成りすまし”なので
イコールにはならないよ

8 :
>>4,5,6
ありがとうございます。
やっぱり実機で試しながら作ったほうが良さそうですね。
Apple年間契約してきました。

9 :
次のような Core Data のモデルの設計の仕方を御指南いただきたいです。
大きく3つのモデルがあります。
図書館オブジェクト Library (name, location, 連絡先電話番号などなど)
書架オブジェクト Bookshelf (何階のどこらへんのような情報)
本オブジェクト Book (タイトル, 著者名, 発行年など、+ 借りられ情報)
たくさんの本が、複数の図書館のどこかの書架に納められています。それで
・いい本は全国の図書館にあるので本の情報全てを図書館の中に入れてしまうと情報が無駄だと思うので
本のタイトルなどのメイン情報は統一した1つのオブジェクトとして持っておきたい。
・その本が借りられているかどうか、など「その本のその図書館での独自情報」だけを付加したい。
・同じ本が複数図書館にあるかもしれない。
という条件に合うようにモデルを設計するにはどのようにすればいいのでしょうか。
特に書籍そのものの情報と実体として複数ある本の情報をどのように持つのがいいのか、御指南いただければ幸いです。

10 :
>>9
図書館アプリ面白そうだけど、どこからどうやって情報を取得するかって問題が…。
まず、どんな人がどういう目的で使うアプリなのか定義すべきでは?
「本」オブジェクトに関しては、
・物理的な1冊1冊の「本」
・ある出版社からいつ出版された、誰の何という「本」
・例えば夏目漱石の「こころ」みたいに、いろんな出版社から、いろんな形で出てるもの
 (ハードカバーと文庫本とか、改訂版とか、子ども用にやさしく書き直したやつとか…)
という3つのレベルがあると思う。で、真ん中のは ISBN で特定できそうだけど、
古い本や自主出版などは ISBN がない場合もありそう…。
とか考え出すと面倒くさいと思う。どこかで割り切る必要があるだろうね。

11 :
>>10
ありがとうございます。ひとまずデータをどうやって入手するかはおいといて思考実験だと思っていただければ幸いです。
3点目のエディションの違いなどはすべて別の種類の本としていただいてかまいません。
区別するものは ISBN でもなんでも OK です。
ご指摘の1点目と2点目、「物理的な1冊ずつの実際に貸し出す本」と、「本の種類そのものを表す本」がうまく区別できるような
Core Data 上の設計の仕方が知りたいところです。
すべてをタイトルから何から別々の本であると見なしてしまうと、
例えばもし「この種類の本が絶版になった」という情報を追加したいときにすべてのその本のオブジェクトを変更しないといけないですが、
別だとしておけばその本のオブジェクトの属性を1つ書き換えればいいのではないかと思っているところです。

12 :
>>9
図書館オブジェクト Library (name, location, 連絡先電話番号などなど)
書架オブジェクト Bookshelf (何階のどこらへんのような情報)
出版情報としてのユニークな本オブジェクト Book (タイトル, 著者名, 発行年)
本の実体オブジェクト BookCopy (Bookへの参照、所属Library, Bookshelf、借りられ情報)
みたいな感じでよくない?

13 :
>>12
ありがとうございます。
BookCopy にある「参照」というのは relationship で作ればいい・・・んですよね? (To-Many Relationship?)
やってみます。

14 :
>>13
Book から BookCopy への relationship は to-many。
「スティーブジョブス(上)」が10冊あれば、一つの Book に対して Bookcopy 10 個ってことだからね。
逆に、BookCopy から Book への (reverse) relationship は to-one。
一つの BookCopy が複数の Book (「スティーブジョブス(上)」と「同(下)」) を参照してたらおかしいからね。
(以上をまとめて one-to-many relationship と言ったりする。)
この辺の言葉使いに関しては DB 設計の本とか読んでみるといいかもね。

15 :
NSDateについて質問です。
言語環境のカレンダーを和暦に設定すると、
NSDateの中身が西暦の「20120106」ではなく「00240106」で来ると思うのですが、
これを西暦に固定する、もしくは変換する方法はございませんでしょうか。
NSDateFormatterにLocale(en_US)などを設定したNSCalendarを設定して、
NSStringで20120106に変換する所まではいったのですが、
それを再度NSDateに変換するとやはり00240106に戻ってしまい困っています。
分かる方いらっしゃいましたらよろしくお願いいたします。
よろしくお願いいたします。

16 :
>>15
NSDate の中身はカレンダー関係ないと思うけど。
文字列に変換する時に、適切な DateFormatter を通せばいいだけ。

17 :
だめだこのスレ読んでると頭おかしくなってくる
NSDateにはGMT1970年元旦からの秒数が入ってるだけでどこの時間かは考慮されてねーよ
何言ってんだ

18 :
質問です。
ImagePickerControllerで、フォトアルバムから任意で選択した画像の
RGBを配列に格納したいのですが、調べてもこれといったやり方が見つけられません。
イメージピッカーで画像を選択することはできています。
画素値の取得と、それを配列に格納するにはどうしたらいいですか?
教えて頂きたいです。

19 :
>>14
ありがとうございました。
Mac板的にわかりやすいたとえでわかりやすかったです。
2重の矢印が出る向きが逆かなと思ってしまいますが、あくまでどっちからどっちへが to-many なのか to-one なのかということなんですよね。
この方向で設計していきます。皆様助かりました。ありがとうございました。

20 :
>>19
矢印は Book <--->> BookCopy だよね。それは慣れるしかない。
ついでに問題出してみる。
•図書館と書架の関連は?
•ある本がどこにあるかを、どうやって表す?

21 :
スリープ理由を取得する方法ってないですか?
着信、ホームボタン、メール受信、ホームボタン2度押しなど

22 :
>>18
正しいキーワードでググれば情報は出てくる。
初心者がやるような事かどうかは微妙。

23 :
>>20
はい、慣れます。
勉強しながらやっていますが・・・
> 図書館と書架の関連は?
Library から Bookshelf が one-to-many relationship です・・・よね?
> ある本がどこにあるかを、どうやって表す?
これは fetch request でとってくればよさそう(?)ですが、まだできていません。
おもちゃモデルからいろいろ実験してみます。

24 :
エンティティにはユニークなIDをつけといたほうがいいよ
本ならISBNそのまま使えばいんじゃね

25 :
ごめん今のなし

26 :
>>17
大きな口を叩いている割には...
NSDateの基準は2001.1.1 00:00:00 GMT.
>>15
ちょっと遠回りするかもしれないが、NSDateを軸に、NSCalendar、NSDateFormatter、NSDateComponents
の関係を学んでくれたまえ。

27 :
Universalアプリで、iPadとiPhone別々のコントローラからそれぞれのxibを扱いたいのですが
AppDelegateをどのように修正すればよいのでしょうか?

28 :
Core Dataってちゃんと使おうとしたらSQL文を使わないといけないのでしょうか?

29 :
いいえ

30 :
ケフィアです

31 :
>>23
>> 図書館と書架の関連は?
>Library から Bookshelf が one-to-many relationship です・・・よね?
Library <--->> Bookshelf だね。
この際、同じ名前の書架があっても、図書館が違えば別のオブジェクトになることに注意。
>> ある本がどこにあるかを、どうやって表す?
>これは fetch request でとってくればよさそう(?)ですが、まだできていません。
>おもちゃモデルからいろいろ実験してみます。
データモデルがどうなってるかと、実際のデータをどうやって取ってくるかは全然別の話。
「ある本がどこにあるか」ってのもエンティティ間の関連で表せるよ。
>>24
>エンティティにはユニークなIDをつけといたほうがいいよ
普通の RDB と違って、Core Data では外部キーで参照するために主キーを作るとかは必要ない。
エンティティによっては unique ID が欲しくなる場合もあるだろうけど、必要になってから考えればいいのでは?
(ISBN でいいかはまた別の話。10桁とか13桁とかあるし…)

32 :
>>27
デバイスがiPadかどうかは
if( UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad )
で判定する。

33 :
UIManagedDocument 使ったアプリ作ったけど
NSPersistentStoreDidImportUbiquitousContentChangesNotification
が来ない
iCloud > Storage & Backup > Manage Storage > (App名) に
baseline.zip というのができてるんだが
デバイス → iCloud にはデータが送られたってことなのかな?
iCloud はいろいろわからん

34 :
最近、Xcodeでのプログラムを始めました。
Xcode 4.2.1で、Master-Datil Appricationのテンプレートを使って、View ControllerのObjectを複数追加して、Table View Cellでタッチして、View間を移動することまでは出来ました。
また、Web Viewを元々用意されているDetail Viewに追加して、View ControllerのOutletsの"Web View"と関連づけることで特定のウェブサイトを表示させることは出来ました。
嵌ってしまったのは、追加した新しいViewに Web Viewを追加しても、そのView ControllerのOutletsには"Web View"が表示されてなく、関連づけることが出来ません。
また、View Controllerのソースコードは、DetailViewContoller.mしかないので、別のソースコードと新しく作ったViewとを関連づける方法、(または、DetailViewContoller.mで作業をさせる場合、View毎にどういう風にコードを分けるのか)、など基本的なことが分かりません。
色々、悩んで試行錯誤したものの、ヒントを教えて頂ければと思います。
(昔、C言語を使っていた当時は、関数の呼び出しで色々、作業をさせられたので、VIewごとに関数みないなのを呼び出して作業をさせるイメージなのかと思ったのですが、違うんでしょうか?)

35 :
上の人みたくSplitViewControllerを使うようにして
開発始めたんですが、途中から縦横関係なくPopViewControllerのほうがいいかなと思えてきました。
どこを修正するべきでしょうか?

36 :
モーダルビューを表示するとボタンを押せなくなってしまいます。
ナビゲーションコントローラーで複数のページを遷移出来るように作っております。
全てのページの下部にボタンを配置する為、Delegate.mにてボタンの配置を行なっております。
改善したいのですが上手くいきません。
//----------Delegate.m
// 作成
TopMenuController* topMenu = [[[TopMenuController alloc] init] autorelease];
rootController_ = [[UINavigationController alloc] initWithRootViewController:topMenu];
rootController_.view.frame = CGRectMake( 0, 0, 320, 480-50 );
// 最初はおせるがモーダルビューを表示すると押せなくなってしまう
UIButton *button = [[[UIButton alloc] initWithFrame:CGRectMake(0,480-50,320,50)] autorelease];
[window_ addSubview:button];
//----------menu1.m
// mail送信
MFMailComposeViewController *picker = [[MFMailComposeViewController alloc] init];
picker.mailComposeDelegate = self;
//AppDelegate* appDelegate = (AppDelegate*)[UIApplication sharedApplication].delegate;
//[appDelegate.window presentModalViewController:picker animated:YES];
[self presentModalViewController:picker animated:YES];
[picker release];
ソースの一部で申し訳ないです。

37 :
Xcode4.2でiPad用のxib作らずにユニバーサルアプリにする方法はありませんか

38 :
>>37
ターゲットの設定をユニバーサルに変更すれば専用xibつくらずともユニバーサルになると思うけど。

39 :
クラスにカテゴリで追加したプロパティにアクセスするにはsetプロパティ名のメソッドが必ず必要になるのでしょうか?
set〜を使わないで直接アクセスする方法はありますでしょうか?
よろしくお願いします。

40 :
>>31
感謝です。
> この際、同じ名前の書架があっても、図書館が違えば別のオブジェクトになることに注意。
OK です。このあたりは実体と同じでわかりやすいですね。
> データモデルがどうなってるかと、実際のデータをどうやって取ってくるかは全然別の話。
> 「ある本がどこにあるか」ってのもエンティティ間の関連で表せるよ。
ふむふむ。どこにあるかを考えるということは今は実体としての本なので BookCopy ですね。
考えている BookCopy のオブジェクトが既にどの図書館でどこの書架にあるかをそれぞれ参照(それぞれone-to-one)しているので
その参照を参照すればいい、ということでいいでしょうか。

41 :
>>36
ModalViewの意味分かってますか?

42 :
>>39
readonly
ってこと?

43 :
俺も初心者でテンプレの本は何冊か持っているんだがarc関係がややこしいので
次から書籍名の横にarcアリとかいう風に書かないけ?

44 :
>>42
いいえ。UILabelに独自のプロパティを追加したいのですが、動きません。
Setterを使う場合でも上手くいきませんでした。
Test.h
@interface UILabel(evLabel)
@property () BOOL isSelected;
@end
Test.m
@implementation UILabel(exLabel)
@dynamic isSelected;
@end
- (void)setIsSelected{~}
- (void)IsSelected{~}
- (void)viewDidload{
UIlabel *a;
a.IsSelected = TRUE;}
これを実行すると、
-[UILabel setIsSelected:]:unrecognized selector sent to instance
とでてしまいます。間違えている箇所の指摘をお願いしますm(_ _)m

45 :
>>41
回答ありがとうございます。
メインとは別の独立したView程度としか把握しておりません。
使い方が間違えているのでしょうか。

46 :
>>36です
説明不足で申し訳御座いません。
モーダルビューを閉じると押せてたボタンが押せなくなるということです。
なんとなくモーダルビューの概念はわかっております。
閉じるボタンを押したりして元のViewに戻った後にボタンが反応しなくなります。

47 :
>>38
一見上手く行くんですが、申請の段になって刎ねられるのです
やむを得ずiPhone専用にして通しましたが、ターゲットは広いほうが良いので...

48 :
>>44
@dynamicではなく@synthesizeじゃないか?
>>45
多分MFMailComposeViewControllerが閉じるときに、上位にあるNavigation Controller等のビューの
フレームを変更してしまうんだと思う。どうしてもその配置にしたいのなら、MFMailComposeViewController
が閉じたときにビューを再配置すれば?ドキュメントのiAdの項目に、画面上下に広告を表示するコード例
があるから、それを参考にすればいいかも。
>>47
シミュレータでは動くんだろ?申請ではねられるのは、別の原因じゃないか?iPad用のアイコンが無いとか。

49 :
>>44
a.IsSelected = TRUE;

@property () BOOL isSelected
で新しくインスタンス変数を追加したつもりのとこへではないの?
カテゴリのプロパティはプロパティのアクセッサ(getter,setter)を新しく定義できるだけで、新しくインスタンス変数は定義(元クラスへの追加は)できないでしょ
そういう場合は、カテゴリじゃなくてサブクラスにしなければならないでしょう

50 :
>>49,44
ああ、違うか
isなんちゃら は予約のはずだったような

51 :
>>44
ああそうか、カテゴリエクステンションではインスタンス変数は使えないから
@synthesizeは使えないんか
- (void)setIsSelected{~}
- (void)IsSelected{~}
も思いっきりおかしいけど
- (void)setIsSelected:(BOOL)selected{~}
- (BOOL)IsSelected{~}
だな
インスタンス変数が使えないので、どうしてもカテゴリエクステンションがいいのなら、
独立して変数を保管する場所を作ってやらないといけない。

52 :
プロパティを追加するだけならサブクラス化が早いだろ
@interface CustomLabel : UILabel
@property (nonatomic) BOOL isSelected;
@end
@implementation CustomLabel
@synthesize isSelected;
@end

53 :
>>49,50,51,52
ありがとうございました。
>>51のおっしゃる通りセットした変数を保持して、ゲットで保持した変数をリターンする必要があるということに行き着きました。
サブクラスを作る方針に変えようと思います。

54 :
>>51,52
なんかすまんw
元々のが新しいインスタンス変数に対してというわけでもなさそう
Xcode で似たようなの書いて試したけど、特にエラーにならなかったから >>51 かなあ

55 :
あら。はずかしいw

56 :
現在マップアプリを制作しています、xcodeを初めて2週間ほどの初心者です。
マップの位置情報の表示のさせ方でつまずいてしまいました。
アプリ上ではお店の名前から、MapKit.framworkを用いてマップ情報に飛ぶようにしています。
複数のお店の位置情報を座標レベルで取得するため、配列NSArrayを使って地図情報(CLLocationCoordinateで座標、MKCoordinateSpanで緯度経度など)
を入力して行こうと思うのですが、地図情報が膨大になってくるとひとつひとつの座標を入力していくのは大変になってくると考えています。
もし、「配列」を用いた地図の座標などの取得→表示というよりも、より効率的な方法があれば案をいただければと思います。
よろしくお願いいたします。

57 :
>>48
当時iPadアイコンも追加しましたがやっぱり刎ねられてました
Xcode3時代はビルド設定変えるだけで行けたんですが

58 :
ゲームのセーブとロードを行うのに(保存内容はint変数およびstringでの名前等の文字列)
一番良い方法は何でしょうか。
テキストデータを置いて
path= [[[NSBundle mainBundle] resourcePath]stringByAppendingPathComponent:@"savedate.txt"];  (savedate.txt の中には"あいうえお"と書いてあります)
text = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:&error]
のような感じで読み込んだらどうかと思ったのですが、どうもうまくいきません。
具体的には
viewDidLoadの中に
path= [[[NSBundle mainBundle] resourcePath]stringByAppendingPathComponent:@"savedate.txt"];
text = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:&error]
[namelabel setText:[NSString stringWithFormat:@"あなたの名前は%@だよ",text]];
と書くと、namelabelに あいうえお と表示されるのですが
[namelabel setText:[NSString stringWithFormat:@"あなたの名前は%@だよ",text]];を
他のメソッド内に書くとexc_bad_accsesが出て落ちてしまったり、読み込めなかったりという現象が起きます。
アドベンチャーゲームのセーブをしたいので、プレイヤーの名前をstring変数、進行具合をint変数にて保存できたら良いなと思っています。(int flag=1なら○○のシーンからスタート とか)
やはりテキストの入出力で行うのがベストなのでしょうか?
その場合、上記のコードではだめなのでしょうか

59 :
>>58
NSUserDefault

60 :
フラグだとか設定はNSUserDefaults
より複雑な構造ならNSDictionaryをplistでNSDocumentDirecotryに保存
保存先のディレクトリに関してはData Storage Guidelinesに沿わないと怒られる

61 :
上の方とは別の質問者ですが、NSUserDefaultsの保存先についての質問です。
NSUserDefaultsの保存先がわかりません。保存先の書いてあるいくつかのサイトをまわり、指定どおりの場所を探しました(finderより)が、ディレクトリが見つかりません。
/Users/ユーザ/Library/ApplicationSupport/iPhoneSimulator/User/Applications/アプリGUID/Library/Preferences/com.yourcompany.アプリ識別子.plist

それらしきファイルがある場所をさがしましたが、それらしいファイルが見当たりません。
(私の場合上記のUserディレクトリの場所にApplicationというファイルがなく、代わりにiPhoneSimulatarディレクトリ直下に[4.3] [4.02]というファイルがありました。こちらの方に目的のディレクトリがあるようでした。)
実際に、UserDefaultsを使ったアプリ内でデータ保存をしても、NSLogにもシミュレータにも反映されないので、どこか重要な部分をいじってしまったのか不安です。
同じような症状がある方、もしくは解決方法をご存知でしたら教えてください。よろしくおねがいします。

62 :
GameCenterのテストをしたいのですが、シミュレータではSandboxの認証が表示されるのですが
実機だと何も出ません。これは何故でしょうか、どなたか解決策をご存知でしたら教えて下さい

63 :
>>48
モーダルビューについて質問した>>36です。
回答、本当にありがとうございます。
原因がどうしてもわからなかったので参考になりました。
iAdのドキュメントを見たりframeのサイズを変えてみたのですが
再配置?の意味がよく理解できませんでした。
参考にしましたURLは下記のものです。
https://developer.apple.com/library/ios/#samplecode/iAdSuite/Listings/ContainerBanner_ContainerBanner_BannerViewController_m.html

64 :
>>61
>UserDefaultsを使ったアプリ内でデータ保存をしても、NSLogにもシミュレータにも反映されない
user defaultsが変更できないってこと?それはおかしいんじゃない?Xcode再インストールしてみたら?
>>63
viewDidLayoutSubviews
で子View Controllerのビューを再配置してるんじゃないか?

65 :
そんなすぐにXcodeの再インストール勧めるなよ…
大抵どっかコードに問題がある

66 :
引数が1個の時にはオーバーロード(もどき)できない?

67 :
最近勉強始めたんですが、ストーリーボードとインターフェイスビルダーどっち使えばいいでしょうか?
サイトとか本だとインターフェイスビルダーばかりですが、ストーリーボード使った方がいいんでしょうか?

68 :
最近始めたのならサイトや本のままやらないと行き詰まるよ

69 :
>>40
あ、ごめん。かえって混乱させちゃったかも。
「ある本がどこにあるか」ってのは、まさに「BookCopy のオブジェクトが既にどの図書館でどこの書架にあるかをそれぞれ参照(それぞれone-to-one)している」ってことなので、
それをさらに参照する必要はありません。(そもそも参照を参照するのってできたっけ?)
ただし、
・one-to-one だと一つの図書館や書架には本を一冊しか置けない。
・個人的には、BookCopy から図書館と書架の両方に関連を持たせる必要はないと思う。(この点は賛否が分かれるかも。)
 書架から図書館へは to-one だから、書架が分かれば図書館も分かるし、両方に関連を持たせるとその整合性を保つのが面倒になるから。
あと、これを言うとさらに混乱を招きそうだけど、そもそも書架エンティティは必要か? って問題もある。
(これはアプリの目的にもよるので、思考実験として書架エンティティを作るのは全然構わないけどね。)

70 :
>>36
>[window_ addSubview:button];
window に button を直接 addSubview: している時点で根本的におかしい。
たぶん view と view controller の役割分担が分かってないんじゃないかな。

71 :
>>56
お店の位置情報は誰がどうやって入力して、どこにどうやって保存するの?
・プログラム中にお店の情報を固定で持っておく
・どっかのサーバーから取得する
・ユーザーが一つ一つ地図上または現地に行って入力する
どれ?

72 :
マクロ関数で
#define MyLog(fmt, ...) NSLog((@"%@ [Line %d] %s " fmt), [self class], __LINE__, __FUNCTION__, ##__VA_ARGS__);
みたいなのがあるのですが,
##__VA_ARGS__のようにシャープがつくときと、print(__VA_ARGS__);のようにシャープが無いときと
このシャープの有無の違いを教えてください。

73 :
>>72
, と __VA_ARGS__ の間に ## があるのは gcc の拡張で、__VA_ARGS__ が空の場合は , も省略してくれる。
詳しくはこちらを。
http://d.hatena.ne.jp/tshino/20061123/1164307813

74 :
>>69
ありがとうございます。
> あ、ごめん。かえって混乱させちゃったかも。
> 「ある本がどこにあるか」ってのは、まさに「BookCopy のオブジェクトが既にどの図書館でどこの書架にあるかをそれぞれ参照(それぞれone-to-one)している」ってことなので、
> それをさらに参照する必要はありません。(そもそも参照を参照するのってできたっけ?)
すみません、そこは「その関連への参照」を「見る」というのを「その参照を参照する」としゃれて書いてみただけでした^^;。
ともかく、単に BookCopy の関連が場所を表せるようになっている、ということでよさそうですね。
> ただし、
> ・one-to-one だと一つの図書館や書架には本を一冊しか置けない。
> ・個人的には、BookCopy から図書館と書架の両方に関連を持たせる必要はないと思う。(この点は賛否が分かれるかも。)
>  書架から図書館へは to-one だから、書架が分かれば図書館も分かるし、両方に関連を持たせるとその整合性を保つのが面倒になるから。
確かに! Library <--->> Bookshelf <--->> BookCopy だけでいいですね。
BookCopy に Library も持たせていました。しかも one-to-many ですね。
元々階層構造になっていたのに、そうしておけばよかった!
> あと、これを言うとさらに混乱を招きそうだけど、そもそも書架エンティティは必要か? って問題もある。
> (これはアプリの目的にもよるので、思考実験として書架エンティティを作るのは全然構わないけどね。)
確かに書架のエンティティがなくても、どこにあるかということを BookCopy の属性に入れておけばいいですもんね。
設計の仕方にもいろいろあり得ますね。
ともかくこのいくつかone-to-manyを階層にする枠組みは他のデータ設計にも使えそうなので覚えておきます。

75 :
「Cocoaのバグだな!」と言い出したとき、結論は次の3つのどれかになる。
1. 自分のバグでした。ごめんなさい。
2. APIの使い方を間違っていました。または、適切な使い方じゃありませんでした。
3. ほんとにバグだったよ!
いままでの経験からいうと、98%くらいは1.ですな。残りは2.。3.は見た事ないい。
Cocoaのバグ?そんなものはあり得ない
http://hmdt.jp/blog/?p=333

76 :
>>75
これテンプレにいれたほうがいいくらい

77 :
UIKitには一杯バグあるけどな。元旦にアラームが鳴らないとか。

78 :
こういうバグもある。NSMutableStringは絵文字を正しく使えない。
(2個目のNSLogは動作しない)

NSMutableString* string = [[NSMutableString alloc] initWithString:@"😃"];
NSLog(@"%@", string);
[string replaceCharactersInRange:NSMakeRange(0, 1) withString:@"!"];
NSLog(@"%@", string);

79 :
>>77
それUIKitじゃねぇ

80 :
>>74
DB構成はそれ用のスレがプログラム板にあるからそっちで議論したほうがいい。

81 :
これクラッシュするんだぜ。iPhoneが和暦に設定されていると。
UIDatePicker* datePicker = [[UIDatePicker alloc] init];
NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
[datePicker setCalendar: calendar];
[datePicker setDate:[NSDate date] animated:NO];

82 :
>>78
恥さらし発見w
休み明けまでにNSStringのリファレンス100万回読み直しとけよ

83 :
>>78
@""はASCIIのみ。「こういうバグもある(キリッ)。」

84 :
「Cocoaのバグだな!」
-> 「日本語ドキュメントを用意しないAppleが悪い!」
これが典型的な初心者の流れ

85 :
UIWebviewでyoutube動かしたら、
youtubeアプリが起動するのですが、
自前のアプリ動かしつつ同時にyoutubeをみるのはアウトですかね?
なんとなくダメだろうなとは思いますが。

86 :
>>70
回答ありがとうございます。
今まで公開したアプリ全てでやってたのですが根本的におかしかったのですね。
よく下部に広告を表示しているアプリがありますが
そこを自分のアプリ紹介ページに飛ばそうとしております。
その為、今回のようにまとめてDelegateに書いていました。
色々、本などを見ながら弄っているのですが
UITableViewを使ってしまうと一番下のセルとボタンが被ってしまったりと上手く実装出来ません。
質問ばかりで申し訳ないのですがサンプル等は頂けないでしょうか。
聞いてばかりで申し訳ないです。

87 :
>>86
次はビルドができません、クラッシュします、サブミッションが通りません、に500点。

88 :
>>83
@"" に日本語は使えるよ。Localizable.strings に書くべきだけど。
>>78
絵文字の多くは uchar 一つには収まらなくて、サロゲートペアってのになってる。
ので、NSMakeRange(0, 1) で誤動作するのは当然。
enumerateSubstringsInRange:options:usingBlock: とかをちゃんと使うべき。

89 :
>>82
悪かった。俺が間違ってたよ。
rangeOfComposedCharacterSequenceAtIndex
で文字範囲を切り出さないといけないんだな。

90 :
質問です。
iPhoneのアプリで、エラー等を検知して、処理を中断する場合は、
どういうコーディングをすれば良いのでしょうか?
一般的には、エラーメッセージを表示して、プログラムを終了するのですが、
iPhoneアプリではプログラム終了のコードを書かないんですよね・・・

91 :
>>90
最近見た記事
http://ninjinkun.hatenablog.com/touch/entry/2011/12/23/224918
ここでは通信エラーと書いてあるけど全般に使える考え方だと思う
どういうコーディング?自分で考えろ

92 :
お勧めのリファレンスの本ってありますか?

93 :
>1. 自分のバグでした。ごめんなさい。
>2. APIの使い方を間違っていました。または、適切な使い方じゃありませんでした。
まさにこれ

94 :
pdfデータを配列として扱いたいのですが、どのように記述すればいいでしょうか?
Page Based Applicationで使いたいと考えています

95 :
>>75 の大切さを身を持って教えてくれた
>>78 に感謝

96 :
>>92
上のテンプレにあるべ。新しいのに対応してないのも多いけど

97 :
>>94
NSArray

98 :
シミュレータでアプリを起動→ホームボタンでホームへ→アプリアイコンタップ→再開
これは良いのですが
シミュレータでアプリ起動→ホームボタンでホームへ→ホームボタン2回押しでタスク管理出してタスク切る→アプリアイコンタップ→起動しないばかりかホームボタン押してもホームに戻れない。
これはこういう仕様なのでしょうか?

99 :
xcodeのツールバー上にSchemaってコンボボックスがあって、ここで実行するデバイスを選べるじゃないですか。
ここが今現在、「iOSデバイス」「iPad 5.0 Simulator」「iPhone 5.0 Simulator」ってなってるんですけど、ここに「iPhone (Retina) Simulator」を追加することってできますか?
シミュレータのハードウェアメニューから選択できるのは知ってるんですけど、切り替えがめんどくさいので、xcodeから変えられないかと思って。
>>98
試してみたけど、タスク切った後普通にアプリ起動できましたよ。

100read 1read
1read 100read
TOP カテ一覧 スレ一覧 削除依頼
・ 次のスレ
スタバでドヤ顔でMacbook Air弄る奴を晒す
■iPhone板でMac勧誘すんなよキチガイ
Macでゲーム Part2
Macのある部屋を見せるスレ Part140