音声即時再生のためのコード.prepareToPlay( )をコードに入れたところ、コンパイルエラーが出てしまいました。

投稿者: Anonymous 初めまして。 swiftを勉強し始めて1週間の初心者です。(プログラミングの経験もかなり浅いです。) 先ほど「世界一受けたいiPhoneアプリ開発の授業」という本を元にコードの写経をしていたところ、コンパイルエラーが出てしまいました。 1〜2時間ほど考えてみたり、コードを打ち直してみたり、Xcodeを再起動してみたり、色々試しましたがエラーは消えず…。という状態です。 エラーでは Value of Optional type “AVAudioPlayer” not unwrapped; did you mean to use “!”or”?”? エラーを治すための指示は Fix-It Insert “!” と書いてありますが、!を挿入してもエラーが出たままです。逆に?を挿入したらエラーは無くなるんですが、これってどういうことが原因なのでしょうか? コードは下記になります。(冒頭のcopyrightなどは省略させていただきます。**で囲まれたところにエラーが出ます。) import UIKit import AVFoundation //AVFoundationをインポートする class ViewController: UIViewController { var player:AVAudioPlayer? //音声を制御するための変数 //BGM再生メソッド func play(soundName:String){ //String型の引数からサウンドを読み込む let soundPath = NSBundle.mainBundle().bundlePath.stringByAppendingPathComponent(soundName) //読み込んだファイルにパスをつける let url:NSURL? = NSURL.fileURLWithPath(soundPath) //playerに読み込んだmp3ファイルへのパスを設定する player = AVAudioPlayer(contentsOfURL:…(Continue Reading)

ios Viewのサイズについて

投稿者: Anonymous ViewのWidthやHeightとはどのような単位となるのでしょうか? ドットなのでしょうか 解決  単位は「ポイント」です。  iOSデバイスの場合、Retinaディスプレイでない端末では1ポイント=1ピクセル、Retinaディスプレイ端末(iPhone6(s)Plusを除く)では1ポイント=2ピクセルになります。  余談ですが、DTPの世界では72ポイント=1インチですが、ディスプレイ上ではそのディスプレイの解像度に依存します。 回答者: Anonymous

カスタムキーボードエクステンションでRealmを使いたいが実行時にフレームワークが見つからないエラー

投稿者: Anonymous dyld: Library not loaded: @rpath/Realm.framework/Realm Referenced from: /Users/User/Library/Developer/CoreSimulator/Devices/830BF1AF-9059-445F-AC17-FC40D97C9C6E/data/Containers/Bundle/Application/9D7F484F-0512-49EE-92B4-9F00FCB00351/test.app/PlugIns/test-key.appex/test-key Reason: image not found 上記のエラーが出ます。 改善方法を教えていただければ幸いです。 解決 ビルドする際に。フレームワークをエクステンションのバンドルにコピーする必要があります。 そのために、ターゲットのBuild Phasesの設定にフレームワークをバンドル内の所定の位置にコピーする設定を追加します。 Xcodeでプロジェクトを選択して、カスタムキーボードエクステンションのターゲットを選択します。 そして、「Build Phases」を選択し、左上の「+」ボタンから「New Copy Files Phase」を追加します。 一番下に「Copy Files」というフェーズが追加されるので、そこにフレームワークをコピーする設定を追加します。 コピー先は「Frameworks」でなければならないので、「Destinaton」を「Frameworks」に変更します。 そして、「+」ボタンを押して「Realm.framework」と「RealmSwift.framework」を追加します。 ここまで設定が済めば、再ビルドして実行してみてください。 エラーが解消されるはずです。 回答者: Anonymous

iOSでRealmデータベースを開こうとするとエラーになる(AppGroupの使用)

投稿者: Anonymous カスタムキーボードエクステンションからファイルが読み込めない 上記を参考にしていますが・・・ print(realmPath) では /private/var/mobile/Containers/Shared/AppGroup/****-****–****/test.realm となりますが・・・ let realm = try! Realm(path: realmPath) のところで、 2015-10-16 08:58:46.720 Test-Keyboard[8880:557651] ***storageTaskManagerExistsWithIdentifier:withIdentifier failed: Error Domain=NSCocoaErrorDomain Code=4099 “The connection to service named com.apple.nsurlstorage-cache was invalidated.” UserInfo={NSDebugDescription=The connection to service named com.apple.nsurlstorage-cache was invalidated.}; { NSDebugDescription = “The connection to service named com.apple.nsurlstorage-cache was invalidated.”;} fatal error: ‘try!’ expression unexpectedly…(Continue Reading)

TableViewCellをクリックして生成されたViewController上のラベルにCellのテキストを表示させる方法

投稿者: Anonymous https://akira-watson.com/iphone/tableview_3_objective-c.html 上記サイトは、TableViewCell(以下、Cellとします)をクリックすることでViewControllerを 生成してそこに遷移し、ViewController上のImageViewに画像を表示させるコードを紹介しています。 表示される画像というのは、plistに格納されており、Cellをクリックすることで呼び出されます。 plistには、テキストデータも含まれています。テキストデータは、Cellのテキストとして動的に表示されています。 上記サイトを参考にして、Cellをクリックして生成されたViewController上に貼り付けたラベルに、 Cellのテキストを表示させる方法を模索しています。 そのためには上記サイトのコードのうち、何箇所かを書き換えなければいけませんが、 //ViewController.hの中身 @interface ViewController : UIViewController @property NSString *imageName; @property IBOutlet UIImageView *imageView; を //ViewController.hの中身 @interface ViewController : UIViewController @property NSString *textName; @property (weak, nonatomic) IBOutlet UILabel *lbText; に書き換え、また、 // ViewController.mの中身 #import “ViewController.h” @interface ViewController () @end @implementation ViewController – (void)viewDidLoad { [super viewDidLoad]; self.imageView.image =…(Continue Reading)

アプリを起動するとアイコンバッジ設定がOFFになる

投稿者: Anonymous Remote NotificationとLocal Notificationを受信した場合にアプリアイコンにバッジを表示しようとしています。 Xcode 6.1.1 / 検証端末はiPhone5S iOS8.2です。 AppDelegate内で以下のようにNotificationTypeを指定しています。 if ([[UIApplication sharedApplication] respondsToSelector:@selector(registerForRemoteNotifications)]) { [[UIApplication sharedApplication] registerForRemoteNotifications]; UIUserNotificationType types = UIUserNotificationTypeBadge | UIUserNotificationTypeSound | UIUserNotificationTypeAlert; UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:types categories:nil]; [[UIApplication sharedApplication] registerUserNotificationSettings:settings]; } else { UIRemoteNotificationType types =UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeAlert| UIRemoteNotificationTypeSound; [[UIApplication sharedApplication] registerForRemoteNotificationTypes:types]; } Remote NotificationからBadgeを付与すると以下のWarningが出ました。 Attempting to badge the application icon…(Continue Reading)

UIActivityViewControllerのシェア機能でFacebookだけ中身が空っぽになる

投稿者: Anonymous ユーザーがアプリ上で作成した情報を、UIActivityViewControllerを使って、メール・Twitter・Facebookなど様々な方法でシェアさせる機能を開発しています。 下記のようなコードを実装したのですが、Facebookでの投稿シェア時に、本文が空っぽになってしまいます。 いろいろ試行錯誤してみたのですが、問題の原因がわからず、解決の緒になるヒントなどを頂けたら幸いです。よろしくお願い致します。 NSURL *url = [NSURL URLWithString:@”http://apple.co/1bvqKT4″]; NSString *text = @”test”; UIImage *image = [UIImage imageNamed:@”hoge.png”]; UIActivityViewController *activityController = [[UIActivityViewController alloc]initWithActivityItems:@[text,url,image]applicationActivities:nil]; [self presentViewController:activityController animated:YES completion:nil]; 添付画像1枚目:Facebookでシェアした時のスクリーンショット。画像だけはシェアされるものの、本文とURLがシェアされない 添付画像2枚目:メールでシェアした時のスクリーンショット。すべてちゃんとシェアされている。 添付画像3枚目:Facebookでシェアした後のタイムライン 解決 簡単に実験してみましたが、なかなか、不思議な動作をしているようです。 テキスト/URL/画像データをセットで投稿した場合 → 画像データだけが投稿される テキスト/URLを投稿した場合 → テキスト/URLが投稿される 実験に使ったコードはこんな感じです。 (iOS 8.3/Xcode 6.3.1/iPhone 5Sで確認) /// テキスト/URL/画像データを投稿 @IBAction func onShareAll(sender: AnyObject) { let text = “Text…(Continue Reading)

[Objective-C]AppDelegateにて、UIAlertControllerを表示させる方法

投稿者: Anonymous 今までUIAlertViewを使用していたのですが、 これをUIAlertControllerに一律置き換えています。 そこで、AppDelegate上にあるAlertViewを どのように置き換えるかという点について教えてください。 (ViewControllerではないので、presentViewControllerができずにいます) 解決 以前qiitaへ投稿した記事からの抜粋です。 http://qiita.com/takabosoft/items/162b6d90e00b79a7e328 どこから呼び出しても(各種モーダルビューが出ていても)大丈夫なように作ったつもりです。 // 警告を表示します。OKボタンタップで閉じます。 void Warning(NSString *message) { UIAlertController *alert = [UIAlertController alertControllerWithTitle:@”” message:message preferredStyle:UIAlertControllerStyleAlert]; [alert addAction:[UIAlertAction actionWithTitle:@”OK” style:UIAlertActionStyleDefault handler:nil]]; // 親ビューコンをなんとか検索 UIViewController *baseView = [UIApplication sharedApplication].keyWindow.rootViewController; while (baseView.presentedViewController != nil && !baseView.presentedViewController.isBeingDismissed) { baseView = baseView.presentedViewController; } [baseView presentViewController:alert animated:YES completion:nil]; } ご参考まで。 回答者: Anonymous

QBPopupMenuの実装方法について

投稿者: Anonymous 下記サイトにてQBPopupMenuの実装が紹介されていますが、うまくいきません。 http://www.iosjp.com/dev/archives/tag/qbpopupmenu 手順通りにやったはずですが、「実装方法」で紹介されているコードのうち、 QBPopupMenu関係のクラスや変数がほぼ全て宣言されていませんとなってしまいます。 また、QBPopupMenu.mでは、”QBPopupMenuItemView.h”が見つかりませんと出ます。 どなたか解決方法をご教示いただけないでしょうか? 解決 サポート: non- ARC と記載があるので、ARCでは使用できないのでは無いかと思います。 もしARCを使用されているのでしたら、試しにARCを無効にしてみては如何でしょうか? ファイル毎に ARC の有効・無効を設定する —– 最初の回答は間違っていて紛らわしいのでコメントの内容で再回答 —– 質問のリンク先の実装方法は旧バージョンの実装方法のため、最新版ではエラーとなる。 最新版はGitHubで公開されておりDemoも一緒に用意してくれているため、ここを見れば実装方法が分かる。 QBPopupMenuは.pchでUIKitをimportしている前提で作成してあるらしく、 Xcode6以降だと多分QBPopupMenuItemでエラーが出る。 手動での.pch作成方法についてはこちら。 回答者: Anonymous

実機でのテストでAuthorizationStatus.NotDeterminedを再現するには?(iOS8)

投稿者: Anonymous iOS8でカメラを使ったアプリの開発をしているおり、実機でのテストが不可欠な状況です。 起動時にAVAuthorizationStatusを調べて、その対応を行うようにしているのですが、 一度、実機でテストを行ってしまうと、 その後、アプリアイコンを長押しして、アプリを削除しても、 アプリにひも付けられたAuthorizedStatusが残っているようで、 AVAuthorizedStatus.NotDetermind の状態をテストすることができません。 シミュレーターなら、リセットすると、AuthorizedStatusがクリアされるようですが、 テストとは言え、使用する実機は実生活で使用しているものでもあり、その度に 実機をクリアするのは、実質的に無理な状況です。 なにかよい解決方法はありますでしょうか? 現在、Swiftを利用していますが、Objective-Cでも構いません。 よろしくお願いいたします。 解決 2つ方法があります。 1つ目はアプリのバンドル名を変えてしまうことです。別アプリとして認識させてしまえば、再度NotDetermindをテストできます。 よりスマートな方法として、「設定」の「一般」>「リセット」>「位置情報とプライバシーをリセット」で、権限のみリセットすることができます。ただし個別のアプリを指定できず、全てのアプリの情報がクリアされてしまう欠点があります。 回答者: Anonymous

Xcode 6.3でiOS 8.0及び7.0のシミュレーターを実行したい

投稿者: Anonymous Xcode 6.3にて、iOS 8.0及びiOS 7.0のシミュレーターを実行する方法はありますか? 公式配布されているのが7.1, 8.1, 8.2, 8.3の4種のみのため、 7.0, 8.0での動作確認ができません。 解決 iOS7.0の検証方法と対象OSが搭載されている実機について OSがYosemiteだったら7.0は難しい(不可能?)と思います。 本家SOにあった同じような質問(How to install iOS 7.0 and iOS 8.0 Simulators in Xcode 6.1?)(6ヶ月前のXcode6.1についての質問ですが・・・)には下記回答がついていましたが、iOS8.0も難しそうな気はします。 The iOS 8.0 simulator is not supported any more as of the release of Xcode 6.1. If you really want it, you can either install Xcode 6.0 or…(Continue Reading)

swiftのHealthKitでHKHealthStore.authorizationStatusForTypeの挙動について

投稿者: Anonymous iOS8で、HealthKitを使って開発をしております。 基本的なHealthKitでの読み込み等は実装がうまく出来ました。 そこで、権限が許可されているかどうかの処理を入れるために、 HKHealthStore.authorizationStatusForType を使って、許可されているかどうかのチェックを行い、処理を分岐しようと考えています。 ただ、HKHealthStore.authorizationStatusForTypeの返却値が、 端末の[設定]>[プライバシー]>[ヘルスケア]の設定を変更しても、変わらずに”SharingDenied”が返ってきてしまいます。 何か、根本的に勘違いをしている箇所等ございましたら、ご指摘頂けますと幸いです。 下記のrequestAuthorization() をViewControllerのviweWillAppearで呼び出してチェックしています。 override func viewWillAppear(animated: Bool) { if(self.healthWeek.isAuthorization()) { // データ取得処理など }else{ self. requestAuthorization() } } func requestAuthorization() { // 読み込みを許可する型. let typeOfRead = [ HKObjectType.quantityTypeForIdentifier(HKQuantityTypeIdentifierStepCount), HKObjectType.quantityTypeForIdentifier(HKQuantityTypeIdentifierFlightsClimbed) ] let typeOfReads = NSSet(array: typeOfRead) // 書き込みを許可する型. let typeOfWrite = [] let typeOfWrites = NSSet(array: typeOfWrite as…(Continue Reading)

NSDateから和暦で年数だけ書き出したい

投稿者: Anonymous oyという文字列の中にグレゴリオ暦での年数が入っています 例えばoyに”2015″と入っているとして下記のようなコードを書きました var date_string: String = “(oy)” println(oy) var date_formatter: NSDateFormatter = NSDateFormatter() date_formatter.locale = NSLocale.currentLocale() date_formatter.dateFormat = “yyyy” var change_date:NSDate = date_formatter.dateFromString(“(oy)”)! println(“(change_date)”) let calendar = NSCalendar(calendarIdentifier: NSGregorianCalendar) func getYear()->Int { let myCalendar = NSCalendar.currentCalendar() let myComponents = calendar!.components(.YearCalendarUnit, fromDate: change_date) let year = myComponents.year return year } tablesection.append(“(getYear())”) oy++ そうしたらiPhoneに設定された暦(今の設定は和暦になっています)に変換されるどころか4003と全く関係ない数字が表示されてしまいました どうすれば正しく変換されますか?…(Continue Reading)

TextFieldへ入れる値を、Modalで候補を表示し選ばせる仕組みのカスタムクラス化

投稿者: Anonymous Xcode 6.3でiPhoneアプリを開発しています。 その中で、複数の値を入力させる画面があります。 直接入力してもらうのではなく、こちらが用意した値の中から選ぶカタチの入力方法を実装したいです。 このページを参考に少し修正し、 1. TextFieldをクリック 2. Modalで出現した複数の値から、タップで選択 3. 最初のTextFieldに反映 というやり方は実現できたのですが、これを1つのコンポーネントとして切り出し、選択肢を配列として渡せばすぐに同様のTextFieldが作成できるようなものを実装したいです。 どのように作成したらよいか困っています。 イメージは、画像の通りなのですが、日本語・英語ともに検索してもなかなかいい解が見つかりませんので、サンプルコードなど教えて頂けたらとてもうれしいです。 よろしくお願いします。 解決 ある程度あなたの要望を取り入れたサンプルを作ってみました。完全におなじとはいきません。テキストフィールドをタップしたら、モーダルビューが開くのではなく、カスタムキーボードが開きます。これは、テキストフィールドをタップしたらキーボードが開くという、デフォルトの動作を抑止するのがわからなかったことと、ユーザインターフェイスとして、画面全部を覆うモーダルビューより、半分以上見えるカスタムキーボードのほうが、優れていると判断したためです。項目の選択には、ピッカービューを用いました。「Input」ボタンを押すと、テキストフィールドに選択項目を入力し、カスタムキーボードが閉じます。 SelectionField.swift UITextFieldのサブクラス import UIKit class SelectionField: UITextField { // プログラムでイニシアライズするとき override init(frame: CGRect) { super.init(frame: frame) setup() } // Storyboardから生成する時、こちらのイニシアライザが呼ばれる。 required init(coder aDecoder: NSCoder) { super.init(coder: aDecoder) setup() } // プログラム、Storyboardいずれから生成してもいいように、初期化処理を関数化しています。 private func setup() { //…(Continue Reading)

admob sdkを実機で走らすと、エラーになる

投稿者: Anonymous 改善策を教えていただけないでしょうか? エミュレーターでは動きますが、実機はコンパイルエラーになります。 以下参照したホームページです。 https://akira-watson.com/iphone/admob.html ここに書かれているフレームワークも追加しています。 よろしくお願いいたします。 エラーコードです。 ld: ‘/Users/*****/Desktop/*****/TestKoukoku/GoogleMobileAds.framework/GoogleMobileAds(GADBannerView.o)’ does not contain bitcode. You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE), obtain an updated library from the vendor, or disable bitcode for this target. for architecture arm64 clang: error: linker command failed with exit code 1 (use -v to see invocation)…(Continue Reading)

iOS8の CustomKeyboard で、UIDatePicker を配置すると実機上で固まる

投稿者: Anonymous 現在、 AppExtension のカスタムキーボードを UIDatePicker を使って作成しています。 シミュレータ上では UIDatePicker は正常に動作するのですが、いざ実機で操作してみると、 UIDatePicker を操作した(回した)時点で固まってしまいます。 カスタムキーボードのテンプレートに追加したコードは、 – (void)viewDidLoad { [super viewDidLoad]; UIView* view = (UIView*) [[UINib nibWithNibName:@”KeyboardView” bundle:NULL] instantiateWithOwner:self options:NULL][0]; view.frame = self.inputView.frame; [self.inputView addSubview:view]; } – (IBAction)nextButtonTapped:(id)sender { [self advanceToNextInputMode]; } のみで、 viewDidLoad の中で、以下の KeyboardView.xib を読み込んでいます。 KeyboardView.xib: この現象は UIPickerView でも同様に発生するようです。 原因や対策など、何かないでしょうか? 問題のプロジェクトを以下に貼ります。 https://mega.co.nz/#!zBInkIzY!Obt7elqi3pKkVPRplkI1knsMEbz5bUyhdAzn4d3iRX4 解決 検証しましたら、フルアクセスを許可することで、スムーズに動作することが確認できました。 フルアクセス許可の表示方法 info.plist…(Continue Reading)

iTunes Connectへの提出ができない (ERROR ITMS-90207: “Invalid Bundle)

投稿者: Anonymous アプリをiTunes Connectへの提出ができなくなってしまいました。(Archiveするところまではできます。) 2週間前に前のバージョンを提出したときは問題なかったのですが。とくにビルド設定を変更した覚えはありません。 症状として、iTunes Connectへの提出プロセスのインジゲーターがほとんど終わりそうなときに、下記のメッセージが表示されます。 本家のStackoverflowで同じような症状に関する質問があり(https://stackoverflow.com/questions/31793854/error-itms-90207-invalid-bundle) Mach-O TypeをDynamicに変更してみたのですが、この変更後はArchiveもできなくなってしまいましたので元に戻しました。 https://stackoverflow.com/questions/33369777/xcode-app-submisson-error-itms-90207-invalid-bundle でサジェストされている2つの解決策についても試してみたのですがダメでした。 今日丸一日この問題でスタックしてしまい、どうにも進めない状況です。 これを試してみては?というアドバイス等あれば、ぜひお願いします。 環境: Xcode 7.1 (Swift)、Deployment Target iOS8.2, Mac OS 10.11.1(El Capitan) 解決 Build settingのenable bitcodeをNOにし、提出時にinclude bitcodeのチェックボックスをオフにしたらエラーが出なくなりました。 他に同じ問題で悩んでいる方がいれば、試してみてください。 回答者: Anonymous

初期設定値とその変更値を保存しておくには?

投稿者: Anonymous iOS8以降で、ソフトの初期値を保存しておくにはどうしたらいいでしょうか? 初期値の変更も保存したいのですが・・・ よろしくお願いします。 swift // 「ud」というインスタンスをつくる。 let ud = NSUserDefaults.standardUserDefaults() // キーがidの値をとります。 var udId : AnyObject! = ud.objectForKey(“id”) // これで表示してみたり。 print(udId) // キーidに「taro」という値を格納。(idは任意の文字列でok) ud.setObject(“taro”, forKey: “id”) // キーidの値を削除 ud.removeObjectForKey(“id”) サンプル import UIKit class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a…(Continue Reading)

呼び出したいplistの名前の部分を動的に決めさせたい

投稿者: Anonymous iPhoneアプリ作成中です。 plistを呼び出す際に、タップした画像ごとに別のplistを呼び出させて、plistの中身をtableViewで 表示させようとしています。条件と手順は以下の通りです。 ・画像(名前:photo01〜10)と、plist(名前:photo01〜10)を用意します。 ・画像photo01〜10は、Aisatuクラスにコレクションビューで並べてあります。 ・タップした画像の名前を取得して、取得した画像の名前と同じ名前の  plistを呼び出そうとしています。 そこで、 // 上のクラス(Aisatuクラス)のインスタンスを取得する NSUInteger idx = [[self.navigationController viewControllers] indexOfObject: self] – 1; Aisatu *masterVC = [[self.navigationController viewControllers] objectAtIndex: idx]; // タップした画像のインデックスを算出する※detailItemの型はid型です。 NSUInteger nextImageIdx = [masterVC.photos[0] indexOfObject: self.detailItem]; NSString *st=[[NSString alloc] initWithFormat:@”%lu”,(unsigned long)nextImageIdx]; NSString* dataFile = [[NSBundle mainBundle]pathForResource:st ofType:@”plist”]; arrayList = [NSArray arrayWithContentsOfFile:dataFile]; と書いてみたのですが、うまくいきません。 NSUInteger nextImageIdx =…(Continue Reading)

StoryBoardで作成したUITableViewCellに関連付けたTappedGestureへ、 Cellの情報を渡したい。

投稿者: Anonymous UIGestureでUITableViewのCellをタップしたら、そのタップしたセルの情報を取得し、 UIGestureのメソッド内にて、メソッドを定義したいのです。 (さらに具体的には、セルの中に画像を埋め込んでおり、その画像の情報を取得し、 そのセルの上にさらにImageViewを表示させ、タップしたセルの情報を保存したいです。) UITableViewDataSourceで定義されている、セルを返すメソッドですが、、↓ func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell{ let cell = tableView.dequeueReusableCellWithIdentifier(“Cell”, forIndexPath: indexPath) as! UITableViewCell return cell } tableView: UITableViewとcellForRowAtIndexPath indexPath: NSIndexPathの値が取得できればcellの情報は取得できるのですが、、 通常、このメソッド中で処理すれば良いのですが、 StoryBoardからTapped GestureでActionを指定しているので、 それは使えません。 尚、コードでそのcellに関連付けたGestureを関連付けると、 UITableViewが持っているGesture系のイベントとバッティングして反応しないという現象が起こっているのでStoryBoardのcell上のGestureを貼り付けている状態です。 メソッドの引数にtableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPathを追加すればStoryboardから動作しなくなりますし、そもそもメソッドにそれらの引数を追加すれば値が渡ってくるものなのかなという疑問もあります。。。 ご教授いただけないでしょうか。 解決 コメントだけでは分かりづらいのでサンプルコードで説明させていただきます。 (説明用のコードのため色々とツッコミどころがあるかもしれませんがご容赦ください) func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { let…(Continue Reading)

UIImageViewを円形にする為のサンプルコードについて

投稿者: Anonymous ImageViewを円形にするためのサンプルコードについて分からないところがあります。 引用先はこのページです。 http://ryutamaki.hatenablog.com/entry/2014/01/27/132020 – (void)viewDidLoad { [super viewDidLoad]; UIImage *circleImage = [UIImage imageNamed:@”ThaiNichi.png”]; UIImageView *circleImageView = [[UIImageView alloc] initWithImage:circleImage]; if (circleImage.size.width != circleImage.size.height) { CGFloat smallerSideLength = (circleImage.size.width < circleImage.size.height) ? circleImage.size.width : circleImage.size.height; circleImageView.frame = CGRectMake((circleImage.size.width – smallerSideLength) * 0.5f, (circleImage.size.height – smallerSideLength) * 0.5f, circleImage.size.width, circleImage.size.height); } else { circleImageView.frame =…(Continue Reading)

iOSアプリ終了時の位置情報取得について。SignificantLocationChanges

投稿者: Anonymous お世話になります。 位置情報を利用したアプリを作っているのですが、思うように位置情報の切り替えが出来ません。 具体的にはアプリ終了時(バックグラウンドでも生きていない)時の位置情報の取得です。 簡単なアプリの流れです。 ・ボタンを押す(off>on)と位置情報の取得開始CLLocationManagerのstartUpdatingLocationで取得開始。 ・バックグラウンド、アプリ終了時はstopUpdatingLocationをしstartMonitoringSignificantLocationChangesをして基地局ベースに切り替え。  実際にこの処理を行っているのはapplicationDidEnterBackground:です。(Notificationで呼び出し) ・フォアグラウンドに来た時はMonitoringSignificantLocationChangesをし、startUpDatingLocationに切り替え。  実際にこの処理を行っているのはapplicationWillEnterForeground:です。(Notificationでメソッド呼び出し) ・ボタンを押す(on->off)したらstopUpdatingLocationでGPSの取得終了。 SignificantLocationChangesだけを使用したサンプルでは成功したのですが、既存のアプリに組み込んだ場合、バックグラウンドでは取得に成功しているのですが、アプリを終了させたら取得できません。ステータスバーのGPSマークはon表示されているままです。 色々と試したりしたのですがどうも改善されず、またネットで探してみたりもしたのですが、わかりませんでした。 なにが原因かわかる方、意見などありましたらご教授ください。 解決 startMonitoringSignificantLocationChangesのドキュメントに書かれているように、一度アプリが終了された後に位置が変わったことが検出された場合、application:willFinishLaunchingWithOptions:に情報が渡されますので、その中で再度CLLocationManagerを初期化して、startMonitoringSignificantLocationChangesを呼び出す必要があります。 If you start this service and your app is subsequently terminated, the system automatically relaunches the app into the background if a new event arrives. In such a case, the options dictionary passed to the application:willFinishLaunchingWithOptions: and application:didFinishLaunchingWithOptions:…(Continue Reading)

上位のクラスを取得し、その中にある画像のインデックス番号を取得する方法がわかりません

投稿者: Anonymous iPhoneアプリ作成中です。 一つ目のクラスにCollectionViewで画像を並べ(以降、このクラスはGazouクラスと呼びます)、 タップした画像ごとに別々のplistを呼び出させます。 そして、二つ目のクラスの中身であるtableViewで、セルのテキストとしてplistの中身を表示させようと しています(以降、このクラスはListクラスと呼びます)。条件と手順は以下の通りです。 <条件> ・UIViewControllerのサブクラスとして、GazouクラスとListクラスを用意する ・画像(名前:photo01〜10)と、plist(名前:List01〜10)を用意する ・plistの中身は以下の通り   Rootのタイプ:Array    Itemのタイプ:Dictionary     Itemの中身のキー:文章     Itemの中身のValue:(各種文章) ・画像photo01〜10は、にコレクションビューで並べてある ・画像をタップするとListクラスに遷移するよう、Presenting Seguesで設定しておく <手順> ・Gazouクラスにコレクションビューで並べた画像(例:photo01)をタップする ・Listクラスに遷移する(これ以降はListクラス内での処理) ・タップした画像のインデックス番号を取得し、plist(例:List01)を呼び出す ・最終的に、plistの中身である(各種文章)をTableViewのセルのテキストとして表示する としたいと考えています。 そこで、 – (void)viewDidLoad{ [super viewDidLoad]; // Gazouクラスのインスタンスを取得する NSUInteger idx = [[self.navigationController viewControllers] indexOfObject: self] – 1; Gazou *masterVC = [[self.navigationController viewControllers] objectAtIndex: idx]; // タップした画像のインデックスを算出する // detailItemの型はid型です。 // detailItemはList.hで「@property (strong, nonatomic)…(Continue Reading)

Swift で NSLocalizedString に tableName を渡して初期化すると “Argument is not a literal string.” エラー

投稿者: Anonymous Swift でアプリ制作を行っており、多言語対応のため、 NSLocalizedString メソッドを使用しております。 そこで、下記のようなコードを設定しました。(例は ViewController.swift ファイルの27行目に記入) let textString: String = NSLocalizedString( “keyString”, tableName: “tableNameString”, comment: “commentString”) ターミナルで genstrings *.swift を行うと、下記のメッセージが表示され、.strings ファイルが生成されません。 Bad entry in file ViewController.swift (line = 27): Argument is not a literal string. そこで、tableName: を削除し、下記のように変更すると、 let textString: String = NSLocalizedString( “keyString”, comment: “commentString”) localizable.strings がきちんと生成されます。 ドキュメント等を読むと、 tableName を設定するとファイルを分けられるようなので、そのようにしたいのですが、どうすればよいのでしょうか? Objective-C では、…(Continue Reading)

iOSでAppGroupを利用したいのですが、初期設定で共用エリアにデータベースファイルを移動しておく方法を知りたい

投稿者: Anonymous 共用エリアに作っておいたデータベースファイルを、インストール時に移動するか、できなければ、なんらかの方法でコピーする方法がわかりません。 どうしたらいいのか、教えていただければ幸いです。 よろしくお願いいたします。 下記はテストで使っていますが、うまく動きません。 var realmPath: String { let containerURL = NSFileManager().containerURLForSecurityApplicationGroupIdentifier(“group.AppGroupKeybora”) let docsPath = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.LibraryDirectory , NSSearchPathDomainMask.UserDomainMask, true)[0] let databaseStr = “Dictionary.realm” let dbPath = docsPath.stringByAppendingString(“/” + databaseStr) var TodbPath = containerURL!.URLByAppendingPathComponent(databaseStr).path! // BEGING MODIFICATION let fileMan = NSFileManager.defaultManager() if !(fileMan.fileExistsAtPath(dbPath)) { // The database does not already exist in Documents directory…(Continue Reading)

iOSでAdmobを最新にしたらエラー

投稿者: Anonymous お世話になります iOS8でadmobの6はサポートされてないよってログに出てくるので、7にしようと思ってます。 で、cocoapodsでインストールしてるのですが、 Header Search Pathにある、admobのパスには、admobのファイルはおらず 以下のエラーで困っております ‘GADBannerView.h’ file not found ちなみに、現状はこちらです {15-02-26 20:06}[ruby-2.1.0]server:~/Documents/[email protected]✗✗✗✗✗✗ shiratsu% open NeoCafesagashi2015.xcworkspace {15-02-26 20:08}[ruby-2.1.0]server:~/Documents/[email protected]✗✗✗✗✗✗ shiratsu% ls Pods/Headers/Public FMDB PonyDebugger SMCalloutView SocketRocket {15-02-26 20:10}[ruby-2.1.0]server:~/Documents/[email protected]✗✗✗✗✗✗ shiratsu% cat Podfile source ‘https://github.com/CocoaPods/Specs.git’ platform :ios, ‘7.0’ pod ‘Google-Mobile-Ads-SDK’, ‘~> 7.0’ pod ‘SMCalloutView’ pod ‘PonyDebugger’ pod ‘FMDB’ ヘッダサーチパスは以下です “${PODS_ROOT}/Headers/Public/Google-Mobile-Ads-SDK” たしかにそんなとこには、ないので、直接、admobのファイルがある場所に向けたのですが、 今度は、Admobが二重で定義されてると怒られ、もう何が何だかわからず。。。 import “GADBannerView.h” static…(Continue Reading)

iOS8でWKWebViewのユーザエージェントを変更するには

投稿者: Anonymous WkWebviewでユーザエージェントを変更したいのですが、iOS8の場合変更する方法が分からず悩んでおります。 ご存知の方がいれば、ご教授願います。 MainController.h @property (nonatomic, strong) WKWebView *webView; MainController.m @synthesize webView = _webView; – (void)viewDidLoad { // 初期化 _webView = [[WKWebView alloc] initWithFrame:CGRectMake(0,0,[[UIScreen mainScreen] bounds].size.width,[[UIScreen mainScreen] bounds].size.height)]; _webView.navigationDelegate = self; _webView.allowsBackForwardNavigationGestures = true; [[self view] addSubview:_webView]; // ユーザエージェント設定 [_webView evaluateJavaScript:@”navigator.userAgent” completionHandler:^(id __nullable userAgent, NSError * __nullable error) { NSString *myUserAgent = [NSString stringWithFormat:@”%@…(Continue Reading)

(CollectionViewとUIImageView使用)ボタンを押すごとに画像をファイル名の番号通りに切り替える

投稿者: Anonymous iPhone アプリを作成中です。 タイトルのとおり、「CollectionViewとUIImageViewを使用して、ボタンを押すごとに画像をファイル名の番号順に切り替えていく」ことをしたいです。具体的には、 ①画像ファイル (ファイル名: photo01〜10 )を用意する ②それらをCollectionViewを用いて一画面に全て並べて表示する ③並べた画面のうち一つをクリックすると、別画面に飛び、そこで、  クリックされた画像がImageViewで表示される ④(例えばphoto03をクリックして表示された場合で)クリックされた  画像が表示されている画面に配置した、  「次」ボタンを押すと、photo04がphoto03の代わりに表示される  「前」ボタンを押すと、photo02がphoto03の代わりに表示される ※①〜③を実現するプロジェクトは下記アドレスにあります。 https://github.com/onot2ndmix/CollectionViewDemo といった具合にしたいのですが、ソースはどのようなものになるのでしょうか? 不勉強で申し訳ありませんが、どなたかご教示いただけないでしょうか。 以上、何卒よろしくお願いいたします。 解決 (4) の動作を実現するポイントは、 データソースであるUIImageのリスト(そのプロジェクトではMasterViewController.photos)を外部に公開すること 単一表示画面(DetailViewController)で表示中のUIImageのリスト内でのインデックスを元に前後の画像を取得すること そのために(そのプロジェクトの構造で言えば)DetailViewControllerからMasterViewController.photosへアクセスできるようにすること 単一表示画面の表示を、取得した前(または後)の画像に更新すること です。 プロパティの外部公開 // MasterViewController.h @property (nonatomic, strong, readonly) NSArray *photos; // 読みのみで公開 // MasterViewController.m @interface MasterViewController () { … } @property (nonatomic, strong, readwrite) NSArray *photos; //…(Continue Reading)