2016-07-06 4 views
1

メソッドのprepareForSegueでラベルのテキストコンポーネントを設定しようとしていますが、メソッドが実行されるとアプリケーションがクラッシュします。私は助けてくれました。私はxcodeの最新バージョンで素早くプログラミングし、iPhoneにビルドしています。 ラベルのテキストを「食事名」に設定する行を削除すると、クラッシュは発生しません。 ブレークポイントは、ラベルのテキストを設定する行にあります。 誰かが私を助けてくれれば偉大になるはずです、ありがとう。PrepareForSegueは動作しますが、宛先の変数にアクセスするとアプリケーションがクラッシュします

- 編集 - FirstViewControllerの

prepareForSegueコード:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
    let dest : SecondViewController = segue.destinationViewController as! SecondViewController 
    dest.mealNameLabel.text = "Meal Name" 
} 

のフルスタックトレース: -

libswiftCore.dylib`function signature specialization <Arg[0] = Exploded, Arg[1] = Exploded, Arg[2] = Dead, Arg[3] = Dead> of Swift._fatalErrorMessage (Swift.StaticString, Swift.StaticString, Swift.StaticString, Swift.UInt) ->(): 
    0x1001de55c <+0>: stp x29, x30, [sp, #-16]! 
    0x1001de560 <+4>: mov x29, sp 
    0x1001de564 <+8>: sub sp, sp, #16    ; =16 
    0x1001de568 <+12>: and w8, w2, #0x1 
    0x1001de56c <+16>: tbnz w8, #0, 0x1001de58c  ; <+48> 
    0x1001de570 <+20>: tbnz x1, #63, 0x1001de5c8  ; <+108> 
    0x1001de574 <+24>: add x1, x0, x1 
    0x1001de578 <+28>: mov x2, x3 
    0x1001de57c <+32>: mov x3, x4 
    0x1001de580 <+36>: mov x4, x5 
    0x1001de584 <+40>: bl  0x1002265b0    ; function signature specialization <Arg[0] = Exploded, Arg[1] = Exploded> of Swift.(_fatalErrorMessage (Swift.StaticString, Swift.StaticString, Swift.StaticString, Swift.UInt) ->()).(closure #2) 

-> 0x1001de588 <+44>: brk #0x1 
    0x1001de58c <+48>: str xzr, [sp, #8] 
    0x1001de590 <+52>: cmp x0, w0, uxtw 
    0x1001de594 <+56>: b.ne 0x1001de6e0    ; <+388> 
    0x1001de598 <+60>: lsr w8, w0, #11 
    0x1001de59c <+64>: cmp w8, #26     ; =26 
    0x1001de5a0 <+68>: b.hi 0x1001de5ec    ; <+144> 
    0x1001de5a4 <+72>: cmp w0, #128     ; =128 
    0x1001de5a8 <+76>: b.lo 0x1001de630    ; <+212> 
    0x1001de5ac <+80>: cmp w0, #2048     ; =2048 
    0x1001de5b0 <+84>: b.hs 0x1001de660    ; <+260> 
    0x1001de5b4 <+88>: movz x8, #0 
    0x1001de5b8 <+92>: movz x10, #0 
    0x1001de5bc <+96>: lsr w9, w0, #6 
    0x1001de5c0 <+100>: orr w9, w9, #0xffffffc0 
    0x1001de5c4 <+104>: b  0x1001de694    ; <+312> 
    0x1001de5c8 <+108>: adr x0, #723338    ; "fatal error" 
    0x1001de5cc <+112>: nop  
    0x1001de5d0 <+116>: adr x3, #723840    ; "UnsafeBufferPointer with negative count" 
    0x1001de5d4 <+120>: nop  
    0x1001de5d8 <+124>: movz w1, #0xb 
    0x1001de5dc <+128>: orr w2, wzr, #0x2 
    0x1001de5e0 <+132>: movz w4, #0x27 
    0x1001de5e4 <+136>: orr w5, wzr, #0x2 
    0x1001de5e8 <+140>: bl  0x1001de55c    ; <+0> 
    0x1001de5ec <+144>: cmp w0, #14, lsl #12   ; =57344 
    0x1001de5f0 <+148>: b.lo 0x1001de63c    ; <+224> 
    0x1001de5f4 <+152>: cmp w0, #272, lsl #12   ; =1114112 
    0x1001de5f8 <+156>: b.hs 0x1001de738    ; <+476> 
    0x1001de5fc <+160>: lsr w8, w0, #6 
    0x1001de600 <+164>: lsr w9, w0, #16 
    0x1001de604 <+168>: cbz w9, 0x1001de664   ; <+264> 
    0x1001de608 <+172>: lsr w9, w0, #18 
    0x1001de60c <+176>: orr w9, w9, #0xf0 
    0x1001de610 <+180>: cmp w9, w9, uxtb 
    0x1001de614 <+184>: b.ne 0x1001de6e0    ; <+388> 
    0x1001de618 <+188>: orr w10, wzr, #0xffffff80 
    0x1001de61c <+192>: bfxil w10, w0, #12, #6 
    0x1001de620 <+196>: and x12, x9, #0xff 
    0x1001de624 <+200>: str x12, [sp, #8] 
    0x1001de628 <+204>: orr w11, wzr, #0x1 
    0x1001de62c <+208>: b  0x1001de674    ; <+280> 
    0x1001de630 <+212>: movz x8, #0 
    0x1001de634 <+216>: movz x9, #0 
    0x1001de638 <+220>: b  0x1001de6d0    ; <+372> 
    0x1001de63c <+224>: adr x0, #723222    ; "fatal error" 
    0x1001de640 <+228>: nop  
    0x1001de644 <+232>: adr x3, #726652    ; "high- and low-surrogate code points are not valid Unicode scalar values" 
    0x1001de648 <+236>: nop  
    0x1001de64c <+240>: movz w1, #0xb 
    0x1001de650 <+244>: orr w2, wzr, #0x2 
    0x1001de654 <+248>: movz w4, #0x47 
    0x1001de658 <+252>: orr w5, wzr, #0x2 
    0x1001de65c <+256>: bl  0x1001de55c    ; <+0> 
    0x1001de660 <+260>: lsr w8, w0, #6 
    0x1001de664 <+264>: lsr w9, w0, #12 
    0x1001de668 <+268>: movz x11, #0 
    0x1001de66c <+272>: movz x12, #0 
    0x1001de670 <+276>: orr w10, w9, #0xffffffe0 
    0x1001de674 <+280>: lsl x13, x11, #3 
    0x1001de678 <+284>: orr w9, wzr, #0xffffff80 
    0x1001de67c <+288>: bfxil w9, w8, #0, #6 
    0x1001de680 <+292>: and w8, w10, #0xff 
    0x1001de684 <+296>: lsl x8, x8, x13 
    0x1001de688 <+300>: orr x10, x8, x12 
    0x1001de68c <+304>: str x10, [sp, #8] 
    0x1001de690 <+308>: add x8, x11, #1    ; =1 
    0x1001de694 <+312>: orr w11, wzr, #0x8 
    0x1001de698 <+316>: umulh x11, x8, x11 
    0x1001de69c <+320>: cmp xzr, x11 
    0x1001de6a0 <+324>: b.ne 0x1001de6e0    ; <+388> 
    0x1001de6a4 <+328>: lsl x11, x8, #3 
    0x1001de6a8 <+332>: cmp x11, #63     ; =63 
    0x1001de6ac <+336>: b.hi 0x1001de714    ; <+440> 
    0x1001de6b0 <+340>: orr w12, wzr, #0x80 
    0x1001de6b4 <+344>: bfxil x12, x0, #0, #6 
    0x1001de6b8 <+348>: and w9, w9, #0xff 
    0x1001de6bc <+352>: lsl x9, x9, x11 
    0x1001de6c0 <+356>: orr x9, x9, x10 
    0x1001de6c4 <+360>: str x9, [sp, #8] 
    0x1001de6c8 <+364>: add x8, x8, #1    ; =1 
    0x1001de6cc <+368>: mov x0, x12 
    0x1001de6d0 <+372>: orr w10, wzr, #0x8 
    0x1001de6d4 <+376>: umulh x10, x8, x10 
    0x1001de6d8 <+380>: cmp xzr, x10 
    0x1001de6dc <+384>: b.eq 0x1001de6e4    ; <+392> 
    0x1001de6e0 <+388>: brk #0x1 
    0x1001de6e4 <+392>: lsl x10, x8, #3 
    0x1001de6e8 <+396>: cmp x10, #64     ; =64 
    0x1001de6ec <+400>: b.hs 0x1001de714    ; <+440> 
    0x1001de6f0 <+404>: and x11, x0, #0xff 
    0x1001de6f4 <+408>: lsl x10, x11, x10 
    0x1001de6f8 <+412>: orr x9, x10, x9 
    0x1001de6fc <+416>: str x9, [sp, #8] 
    0x1001de700 <+420>: add x9, sp, #8    ; =8 
    0x1001de704 <+424>: add x8, x8, x9 
    0x1001de708 <+428>: add x1, x8, #1    ; =1 
    0x1001de70c <+432>: add x0, sp, #8    ; =8 
    0x1001de710 <+436>: b  0x1001de578    ; <+28> 
    0x1001de714 <+440>: adr x0, #723006    ; "fatal error" 
    0x1001de718 <+444>: nop  
    0x1001de71c <+448>: adr x3, #723412    ; "shift amount is larger than type size in bits" 
    0x1001de720 <+452>: nop  
    0x1001de724 <+456>: movz w1, #0xb 
    0x1001de728 <+460>: orr w2, wzr, #0x2 
    0x1001de72c <+464>: movz w4, #0x2d 
    0x1001de730 <+468>: orr w5, wzr, #0x2 
    0x1001de734 <+472>: bl  0x1001de55c    ; <+0> 
    0x1001de738 <+476>: adr x0, #722970    ; "fatal error" 
    0x1001de73c <+480>: nop  
    0x1001de740 <+484>: adr x3, #726480    ; "value is outside of Unicode codespace" 
    0x1001de744 <+488>: nop  
    0x1001de748 <+492>: movz w1, #0xb 
    0x1001de74c <+496>: orr w2, wzr, #0x2 
    0x1001de750 <+500>: movz w4, #0x25 
    0x1001de754 <+504>: orr w5, wzr, #0x2 
    0x1001de758 <+508>: bl  0x1001de55c    ; <+0> 

これは、ビューコントローラのコードです(>ブレイクです)私はdestでアクセスしています: (Emptylessに感謝)

// 
// SecondViewController.swift 
// FoodTracker 
// 
// Created by Michael Buerger on 7/4/16. 
// Copyright © 2016 Michael Buerger. All rights reserved. 
// 

import UIKit 

class SecondViewController: UIViewController { 

    // MARK: Properties 
    @IBOutlet weak var mealNameLabel: UILabel! 
    var mealName: String? 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     if mealName != nil { 
      mealNameLabel.text = mealName 
     } 

    } 
} 
+0

ラベルがストーリーボードにバインドされていることを確認してください – Feldur

+0

Xcodeプロジェクトから関連するコードを入力してください。 – wigging

+0

コードとエラー情報を質問に直接テキストとして貼り付けてください。 UI関連の情報を表示するための画像の使用を制限する。 @Emptylessは、提供された画像からコードを翻訳することに賛成しましたが、エラーメッセージに対して同じことをしなければなりません。あなたの質問を改善するために、質問の下にある「編集」リンク(これらのコメントのすぐ上にある)をクリックするだけです。保留中の編集がコミュニティレビューアによって承認されるまで待つ必要があるかもしれません。 –

答えて

2

ほとんどの場合、まだ初期化されていないIBOutletにアクセスしている可能性があります。そうではなく、直接、あなたがより多くの運を持っているかもしれないテキストを保持する変数を作成UITextLabelを設定する:

SecondViewControllerのプロパティとして:

var labelText : String? 

FirstViewControllerのprepareForSegue()で:

des.labelText = "Your Text" 

とSeconViewControllerのviewDidLoad()

self.MeatNameLabel.text = labelText 
+0

この作品は、ありがとう、私はこれをupvoteだろうが、私は私の評判のためにすることはできません。 –

+0

いいえ@MichaelBuerger。コンセントは 'prepareForSegue'の後まで設定されません。この答えが正しい解決策です。 – vacawama

+0

@MichaelBuerger、議決権を行使することはできませんが、その横のチェックマークをクリックすると回答が受け付けられます。 – vacawama

関連する問題