タグ付けされた質問 「initialization」

6
Javaスイッチ内での変数の宣言と初期化
Javaスイッチについて、おかしな質問があります。 int key = 2; switch (key) { case 1: int value = 1; break; case 2: value = 2; System.out.println(value); break; default: break; } シナリオ1 - key2として、それが正常値を出力2である 私がコメントするつもりだ-シナリオ2 value = 2でcase 2:、それは言ってsquawks ローカル変数の値が初期化されていないかもしれません。 質問: シナリオ1:実行フローがに進まないcase 1:場合(の場合key = 2)、値変数の型はどのようにしてわかりintますか? シナリオ2:コンパイラーが値変数のタイプをとして認識している場合は、。(宣言と初期化)の式にintアクセスしている必要があります。では、なぜローカル変数の値が初期化されていない可能性があると言ってコメントするつもりなのでしょうか。int value = 1;case 1:value = 2case 2:


3
初期化されていないオブジェクトとNULLに初期化されたオブジェクト
私はJavaで働いています。 私は一般的にいくつかのオブジェクトをそのように設定します: public class Foo { private SomeObject someName; // do stuff public void someMethod() { if (this.someName != null) { // do some stuff } } } 問題は次のとおりですsomeName。この例ではと同等ですがnull、reliably for all objects初期化されていないオブジェクトのnullチェックは正確であると仮定できますか。

5
SwiftでUIViewControllerサブクラスのカスタム初期化子を作成するにはどうすればよいですか?
これが以前に尋ねられたことがある場合はお詫びします。私は何度も検索しましたが、多くの答えは、物事が異なっていた初期のSwiftベータ版からのものです。決定的な答えを見つけることができないようです。 UIViewControllerコードで簡単に設定できるように、サブクラス化し、カスタム初期化子を用意します。Swiftでこれを行うのに問題があります。 ビューコントローラーで使用init()する特定の関数を渡すために使用できる関数が必要ですNSURL。私の心の中でそれは次のように見えますinit(withImageURL: NSURL)。その関数を追加すると、init(coder: NSCoder)関数を追加するように求められます。 これは、スーパークラスでrequiredキーワードが付けられているためだと思いますか?だから私はサブクラスでそれをしなければならないのですか?私はそれを追加します: required init(coder aDecoder: NSCoder) { super.init(coder: aDecoder) } それで?私の特別な初期化子はconvenience1つと見なされますか?指定されたもの?スーパー初期化子を呼び出しますか?同じクラスのイニシャライザ? 特別な初期化子をUIViewControllerサブクラスに追加するにはどうすればよいですか?

10
C構造体のデフォルト値
私はこのようなデータ構造を持っています: struct foo { int id; intルート; int backup_route; int current_route; } そしてupdate()と呼ばれる関数を使用して、その変更をリクエストします。 update(42、dont_care、dont_care、new_route); これは非常に長く、構造に何かを追加する場合、update(...)へのすべての呼び出しに 'dont_care'を追加する必要があります。 代わりに構造体を渡すことを考えていますが、構造体に「dont_care」をあらかじめ入力しておくことは、関数呼び出しで単純にスペルアウトするよりも面倒です。構造体をどこかにデフォルト値dont careで作成し、それをローカル変数として宣言した後に、気になるフィールドを設定することはできますか? struct foo bar = {.id = 42、.current_route = new_route}; update(&bar); 表現したい情報だけを更新関数に渡す最もエレガントな方法は何ですか? そして、私は他のすべてをデフォルトで-1にしたい(「気にしない」の秘密のコード)
92 c  initialization 

9
構造体をゼロ/ nullに初期化/リセット
struct x { char a[10]; char b[20]; int i; char *c; char *d[10]; }; 私はこの構造体を埋めて、値を使用しています。次の繰り返しで、私はにすべてのフィールドをリセットしたい0かnull、私はそれを再利用を開始する前に。 どうやってやるの?使用できますmemsetか、それともすべてのメンバーを通過してから個別に実行する必要がありますか?

8
CポインタをNULLに初期化することは可能ですか?
私は次のようなものを書いていた char *x=NULL; という前提で char *x=2; charアドレス2へのポインタを作成します。 しかし、GNU Cプログラミングチュートリアルではint *my_int_ptr = 2;、整数値2は、my_int_ptr割り当て時にランダムなアドレスに格納されると記載されています。 これは、自分char *x=NULLのNULLキャストの値がcharメモリ内のランダムなアドレスに割り当てられていることを意味しているようです。 ながら #include <stdlib.h> #include <stdio.h> int main() { char *x=NULL; if (x==NULL) printf("is NULL\n"); return EXIT_SUCCESS; } 実際には、印刷します 無効です コンパイルして実行するとき、未定義の動作、または少なくとも仕様不足の動作に依存していること、および char *x; x=NULL; 代わりに。



7
JavaFX:初期化中にコントローラーからステージを取得する方法は?
コントローラクラスからステージイベント(つまり、非表示)を処理したい。だから私がしなければならないすべては経由でリスナーを追加することです ((Stage)myPane.getScene().getWindow()).setOn*whatIwant*(...); しかし問題は初期化が直後に始まるということです Parent root = FXMLLoader.load(getClass().getResource("MyGui.fxml")); 以前 Scene scene = new Scene(root); stage.setScene(scene); したがって、.getScene()はnullを返します。 私が見つけた唯一の回避策は、myPane.sceneProperty()にリスナーを追加することです。それがnullにならない場合は、シーンを取得し、.windowProperty()に追加します。最終的にステージを取得するリスナー処理。そして、すべての目的は、イベントをステージングするために必要なリスナーを設定することです。リスナーが多すぎると思います。それが私の問題を解決する唯一の方法ですか?

12
ストーリーボードでインターフェースを設定したSwiftのUIViewControllerのカスタム初期化
UIViewControllerのサブクラスのカスタムinitの記述に問題があります。基本的に、プロパティを直接設定するのではなく、viewControllerのinitメソッドを介して依存関係を渡したいです。 viewControllerB.property = value そこで、viewControllerのカスタムinitを作成し、スーパー指定のinitを呼び出しました。 init(meme: Meme?) { self.meme = meme super.init(nibName: nil, bundle: nil) } ビューコントローラーインターフェイスはストーリーボードにあります。カスタムクラスのインターフェイスもビューコントローラーにしました。また、このメソッド内で何もしていない場合でも、Swiftはこのinitメソッドを呼び出す必要があります。そうでなければ、コンパイラは文句を言うでしょう... required init?(coder aDecoder: NSCoder) { super.init(coder: aDecoder) } 問題は、カスタムinitを呼び出そうとするとMyViewController(meme: meme)、viewControllerのプロパティがまったく初期化されないことです... 私はデバッグしようとしていましたが、viewControllerでinit(coder aDecoder: NSCoder)最初に呼び出され、次にカスタムinitが後で呼び出されました。ただし、これら2つのinitメソッドは異なるselfメモリアドレスを返します。 私は自分のViewControllerのためのinitで何かを間違っを疑っていて、それが常に返されますselfとinit?(coder aDecoder: NSCoder)、何の実装を持ちません、。 viewControllerのカスタムinitを正しく作成する方法を知っている人はいますか?注:私のviewControllerのインターフェースはストーリーボードで設定されています これが私のviewControllerコードです: class MemeDetailVC : UIViewController { var meme : Meme! @IBOutlet weak var editedImage: UIImageView! // …


7
Swift初期化子がスーパークラスのコンビニエンス初期化子を呼び出せないのはなぜですか?
次の2つのクラスを考えます。 class A { var x: Int init(x: Int) { self.x = x } convenience init() { self.init(x: 0) } } class B: A { init() { super.init() // Error: Must call a designated initializer of the superclass 'A' } } これが許可されない理由がわかりません。最終的には、各クラスの指定イニシャライザは、なぜ私は自分自身を繰り返す必要がない、彼らが必要とする任意の値で呼び出されたBS」initのデフォルト値を指定することでx利便とき、再びinitではAうまくやるだろうか?


4
Swift:カスタムViewController初期化子
UIViewControllerSwiftのサブクラスにカスタム初期化子をどのように追加しますか? UIViewController次のようなサブクラスを作成しました。 class MyViewController : UIViewController { init(leftVC:UIViewController, rightVC:UIViewController, gap:Int) { self.leftVC = leftVC; self.rightVC = rightVC; self.gap = gap; super.init(); setupScrollView(); setupViewControllers(); } } 実行すると、致命的なエラーが発生します。 致命的なエラー:クラス「MyApp.MyViewController」に実装されていない初期化子「init(nibName:bundle :)」を使用 カスタム初期化子を追加するときにオーバーライドinit(coder aDecoder:NSCoder)する必要があることinitをどこかで読んだので、それをオーバーライドして何が起こるか見てみましょう: override init(coder aDecoder: NSCoder) { super.init(coder: aDecoder); } これを追加すると、Xcodeはそれを文句を言いself.leftVC is not initialized at super.init callます。ですから、それも解決策にはなり得ないと思います。ではViewController、Swiftのサブクラスにカスタム初期化子を適切に追加するにはどうすればよいのでしょうか(Objective-Cではこれは問題ではないようです)。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.