質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Xcode 7

Xcode 7は、ソフトウェア開発のためのアップルの統合開発環境であるXcodeのバージョン。UIを作成するために用いるグラフィカルツールです。iOS9/OS X El Capitan/watchOS2に対応。Swift 2コンパイラーが搭載されています。

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Swift 2

Swift 2は、Apple社が独自に開発を行っている言語「Swift」のアップグレード版です。iOSやOS X、さらにLinuxにも対応可能です。また、throws-catchベースのエラーハンドリングが追加されています。

Q&A

解決済

1回答

3625閲覧

Swift スタックオーバーフロー

mokumoku

総合スコア46

Xcode 7

Xcode 7は、ソフトウェア開発のためのアップルの統合開発環境であるXcodeのバージョン。UIを作成するために用いるグラフィカルツールです。iOS9/OS X El Capitan/watchOS2に対応。Swift 2コンパイラーが搭載されています。

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Swift 2

Swift 2は、Apple社が独自に開発を行っている言語「Swift」のアップグレード版です。iOSやOS X、さらにLinuxにも対応可能です。また、throws-catchベースのエラーハンドリングが追加されています。

0グッド

0クリップ

投稿2015/12/03 14:41

編集2015/12/04 01:32

アプリ開発初心者です。

現在、追加した値を元にカウントダウンを行うアプリを作成しているのですが、行き詰まってしまいました。

下記のコード内の追加画面への遷移buttonをタップすると
落ちてしまいます。

コメントアウトしている箇所は、
元々はそのままにしていても動作していたのですが、
スタックオーバーフローが起こってしまったのか、
動作しなくなったので、コメントアウトしています。(関係あるかわかりませんが、動作上おかしくなる部分も含む)

自分なりに色々と調べたりしたのですが、
解決策が見つからなかったので、質問させていただきました。

//追記
以下のコードを色々と書き換える前に
warning:could not load any Objective-C class information from the dyld shared cache. This will significantly reduce the quality of type information available.
とコンソールに表示されたので、現在の以下のコードを実行したときには表示されませんが、もしかしたら、現段階でも発生しているのかと思い、質問内容に含めさせていただきました。

Swift

1 2import UIKit 3 4class TopActivity: UIViewController { 5 6 var a: Int = 0 //保存した値を一度だけ取得 7 var c: Int = 0 8 var b: Int = 0 9 var intVal: Int! 10 var d: Int = 0 11 var timelog: Int = 0 12 var timerTime = NSUserDefaults.standardUserDefaults() 13 14 //CountDown 15 var timerCount: Int = 0 16 var timer = NSTimer() 17 18 //タイマー 19 @IBOutlet weak var timerlabel: UILabel! 20 21 func Counting(){ 22 timerCount += timelog 23 24 25 if(timerCount == 0){ 26 //timerlabel.text = "0" 27 timer.invalidate() 28 }else{ 29 30 timerCount -= 1 31 timerlabel.text = "\(timerCount / 60) min \(timerCount % 60) sec" 32 33 // 毎秒、値を保存 34 /*timerTime.setObject(timerCount, forKey: "timeKey") 35 timerTime.synchronize() 36 */ 37 if(timerCount == -1&&d == 1){ 38 39 timerlabel.text = "カウントダウン終了" 40 } 41 } 42} 43 44 45@IBAction func toptoselect(sender: UIButton) {//追加画面への遷移button 46 47 timerTime.setObject(timerCount, forKey: "timeKey") 48 timerTime.synchronize() 49 50 timerCount = 0 51 //timer.invalidate() 52} 53 54override func viewDidLoad() { 55 56 super.viewDidLoad() 57 58 /* 59 timerTime.registerDefaults(["timekey": 1])// デフォルト値 60 61 var f = 0 62 63 if(f==0){ 64 timelog = timerTime.objectForKey("timeKey") as! Int 65 f += 1 66 } 67 */ 68 69 timer = NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: Selector("Counting"), userInfo: nil, repeats: true) 70 71} 72 73override func didReceiveMemoryWarning() { 74 75 super.didReceiveMemoryWarning() 76 77 // Dispose of any resources that can be recreated. 78} 79}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Stripe

2015/12/03 14:51

なぜ、スタックオーバーフローが発生したと分かったのですか?
domonr

2015/12/03 16:08

エラーメッセージがほしいです。Xcodeに右下になにか出ていませんか?
guest

回答1

0

ベストアンサー

コメントアウトしているところの問題はキーの綴りが違います。

swift

1// timekey → timeKey 2timerTime.registerDefaults(["timekey": 1])// デフォルト値

画面遷移する時に落ちる問題はこちらでは再現しませんでした。

コンソールのエラーログを載せて頂く方がわかると思います。

投稿2015/12/03 21:13

編集2015/12/03 21:14
_Kentarou

総合スコア8490

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mokumoku

2015/12/04 00:32

コメントアウトしている箇所のエラーを治すことが出来ました。 ありがとうございます。 コンソールのエラーログに関しましては質問文に追加致しました。 回答よろしくお願い致します。
_Kentarou

2015/12/04 01:04

追加画面への遷移ボタンタップ時に落ちるとの事なので、落ちた時のコンソメのログが見たいです。AppDelegateにてブレイクポイントで止まったときに何かエラーが書かれていませんか? ボタン押下時に書いてあるコードでは落ちないので、Storyboardのsegue等ではないかと思っています。
mokumoku

2015/12/04 01:27

すいません、いくつかのブレークポイントを遷移先のファイルに置いて確認したところ、 下記のログが出ました。 遷移先のコードを質問文に追記したほうがよろしいでしょうか? Will attempt to recover by breaking constraint <NSLayoutConstraint:0x15653970 UITableView:0x159ec600.centerY == UIView:0x15652fb0.centerY> Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to catch this in the debugger. The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKit/UIView.h> may also be helpful.
mokumoku

2015/12/04 01:47

今、気づいたのですが、 実機での動作確認をしており、実機につないだ状態で実行すると 該当箇所で落ちるのですが、 つながずに実行すると、ちゃんと動作するのですが関係ありますでしょうか?
_Kentarou

2015/12/04 01:53

こちらはAutolayoutの制約のワーニングだと思うので落ちた時のログではないと思います。 ブレイクポイントを張らないで、落ちた時に出ているログがあれば教えて下さい。 遷移先のコードも可能でしたら載せて頂けると、ヒントになるかも知れません。
mokumoku

2015/12/04 02:41

buttonを遷移先と再度つなぎ合わせて、 全てのブレークポイントを取り覗いたら落ちることなく、遷移することが出来ました。 buttonがちゃんとつながっていなかったのか、もしくはブレークポイントに問題があったのかわかりませんが、回答ありがとうございました。お手数お掛け致しました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問