問題タブ [initwithcoder]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
39 参照

xcode - Xcode NsCoding ナビゲーション タイトルが消える

このコードをプロジェクトの「MasterViewController.m」に追加しました。

.

「initWithCoder-code」を追加すると、ナビゲーション タイトルが消え、ナビゲーション バーの「追加ボタン」をクリックするとアプリがクラッシュします。(_savedText" は mutableArray です) 何が問題の原因ですか?

0 投票する
3 に答える
868 参照

ios - インターフェイス ビルダーから nib をロードしようとしています

UIView独自の XIB を持つベース クラスがあります。このクラスを呼び出しましょうMyClass。だから私はMyClass.xibMyClass.hそしてを持っていMyClass.mます。

ストーリーボードに UIView オブジェクトがあり、そのオブジェクトのクラスを に設定しましたMyClass

新しいUIViewXIB を作成し、XIB 内でファイル所有者のクラスを に変更しましたMyClass。XIB 内でさらに接続を行う必要があるかどうかはわかりません。

私が欲しいのはこれです:ストーリーボードが読み込まMyClass.mれ、それが読み込まれますMyClass.xib。そのため、この初期化コードがあります:

問題は、このコードが無限ループに入ることです。もう一度loadNibNamed電話をかけるinitWithCoder:と、アプリがクラッシュします。

それ、どうやったら出来るの?なぜループなのか、xib 内で作成する必要がある接続は他にありますか?

0 投票する
0 に答える
195 参照

xcode - オブジェクトのデコード中に initWithCoder: が間違ったオブジェクト クラスを返すのはなぜですか?

些細なテストケースで NSKeyedArchiver / NSKeyedUnarchiver を使用しようとしていますが、initWithCoder: が呼び出されると、作成されたオブジェクトが間違ったクラスを持っていることを報告します。

TestCoder.h

TestCoder.m

NSLog の出力:

2015-07-22 14:10:45.394 TestCoder[10858:632647] TestCoderはTestCoderの一種?はい

ただし、これを単体テストすると、機能しないようです。

私のテスト ケース レポート:

error: -[TestCoderTests testExample] : (([object isKindOfClass:TestCoder.class]) is true) failed

しかし、デバッガーを使用してオブジェクトのクラスを調べると、テスト ケースと矛盾する結果が得られます。

ここで何が起こっているのですか?

パスする簡単なテスト ケースを使用することで、isKindOfClass を誤用していないことがわかります。

ドキュメントに記載されていない、NSCoder を適切に動作させるためのトリックはありますか?

0 投票する
0 に答える
88 参照

objective-c - initWithCoder と encodeWithEncoder 地獄。これは単純化できますか?

それぞれ数十のプロパティを持つ数十のモデルがあり、すべてNSCoderプロトコルとを使用してディスクに保存できるNSKeyed(Un)archiverため、iOS アプリケーションのモデルを作成して維持するのは大変な作業です。1 つのモデルに多数のプロパティがあるため、次のことを行う必要があります。

  1. 多数のプロパティを定義します(どこかに定義する必要があるため、これで問題ありません)

  2. メソッドinitWithCoder:を入力します。これは、プロパティ名 (または定数キー) を入力/コピーして貼り付ける 12 行と 20 回です。3) いくつかはencodeWithCoder:.

間違い (入力、コピー、変更 (または変更しない)のいずれか) のリスクは非常encodeObject:encodeInteger:大きいです。その上、それは単純に多くの手作業であり、私はやりたくないのです。我ら。

まずは作業の簡素化などを検討しました。このようなもの:

しかし、それはまだ大変な作業です。これはもっと簡単にできませんか?イントロスペクションなどを使用して実行時にこれを行うことは好みません。

モデルファイルを生成/操作してXcodeに追加するPythonスクリプトについて考えています。これは、何らかの JSON 記述ファイルに基づいている可能性があります。

ビルド前の段階で Xcode がこれを自動的に実行するようにすると、すばらしいでしょう。つまり、すべてのモデルとすべてのプロパティを一度に定義し、エンコード/デコードするのを忘れた間違いやプロパティについて心配する必要がない単一の場所を意味します。

そのようなものはありますか?読めないAppleの「XML」プロジェクトファイルを台無しにすることなく、Xcodeプロジェクトにファイルを追加する方法はありますか? そして、ターゲットにヘッダーを含めることはどうですか..または、すべての作業を節約するための他の優れた方法でしょうか?

0 投票する
2 に答える
34 参照

ios - コントローラー間で値を渡す

Storyboard を使用してビュー コントローラーを作成しますが、コードのインスタンス化を使用して、コントローラーに値を渡します。" " と呼ばれることはわかっていますがinitWithCoder:、メソッド内のプロパティは nil です。 私はどこかでプロパティ値を取得しますか?

0 投票する
1 に答える
15974 参照

swift - Swiftでinitwithcoderをコーディングするには?

私はswiftの初心者で、swiftのinitwithcoderに問題があります。

私は UserItem クラスを持っています。ユーザーのログインを保存するために必要です。

目的のcでは、このようなものです

そして迅速に私はこのようにしようとしています

しかし、上記の場合、コードでエラーが発生します

エラーメッセージは「呼び出しに余分な引数 'coder'

もうわからないので、このコードを試してみます。

しかし、エラーが発生します

私は何をすべきか?あなたの助けの前にありがとう。

0 投票する
1 に答える
451 参照

xcode - UIView を Swift でサブクラス化し、Nib で使用する

UIView を Swift でサブクラス化し、クラスに 1 つのパラメーターを指定して初期化しようとしています。必須のInit With Coderイニシャライザが私をつまずかせています。実際、私は自分のビューを Nib ファイルに挿入できるようにしたいと考えています。私の理解では、これはInit With Coderを呼び出します。この初期化子を addl で呼び出す方法はありますか。デコーダー以外のパラメーター?現在、コードがコンパイルされるように、以下に示すようにインスタンス変数にデフォルト値を割り当てています。

私のイニシャライザは、以下に示すように設定されています。

Nibファイルを介してビューを初期化すると、新しいパラメータを渡す方法がないというのは本当ですか?

0 投票する
0 に答える
223 参照

ios - Swift のコンストラクターで「let」プロパティを動的に初期化する方法

Swift で UILabel のサブクラスを作成しました。ラベルの種類に基づいて、フォント、色サイズなどのラベルのプロパティをカスタマイズしたいと考えています。

このラベルはストーリーボード ファイルで作成されます。ラベルのタイプを識別するために、カスタム プロパティ名 'labelType' を作成しました。この labelType は、割り当てられるとその値を決して変更しません。したがって、このプロパティを「let」に作成する必要がありますが、問題は、 initWithCoderが呼び出される前にこのプロパティを定義する必要があることです。

initWithCoder の初期値を動的に設定するにはどうすればよいですか? (または他のデフォルトコンストラクタ?)

現在、プロパティをvarとして作成しており、ストーリーボード自体からそのプロパティの値を設定しています(ユーザー定義のランタイム属性)

ここにコードがあります

絵コンテのイメージ

0 投票する
0 に答える
748 参照

swift - Swift UIViewController がクラッシュする (致命的なエラー: init(coder:) は実装されていません)

MainViewControllerクラスを宣言/定義する迅速なファイルを作成しましたMainViewController。ストーリーボードの唯一のシーンのカスタム クラスをこのクラスとして設定しました。次のコードがあります。

プロジェクトを実行すると、次のクラッシュ ログが表示されます。

致命的なエラー: init(coder:) が実装されていません: ファイル /Users/alexanderbollbach/Desktop/DraWave/content/MainViewController.swift、17 行目

これは人々が以前に経験した問題であり、Swift はビュー コントローラーの初期化に関していくつかの複雑さを導入したようです。私は現在迅速に学習していますが、問題が何であるかを解決できません。これは、objective-c クラスを含む混合言語プロジェクトであることに注意してください。

0 投票する
0 に答える
379 参照

ios - iOS : initWithCoder の失敗: 'セレクター実装の実行済みクラスをプッシュする必要があります'

遅延ロードで実装された CLImageView としてサブクラス化された UIImageView があります。

ちょうど前に、次のエラー メッセージが表示されました。

行: if(self=[super initWithCoder:aDecoder]) {

私は 5 年間 iOS プログラミングをするまで、このエラーを見たことがありませんでした。この種のメッセージに関する情報はここでは見つかりませんでした。

誰かが私を落とすことができれば、いくつかのアイデアがありがたいです.

さらに情報が必要な場合は、コメントを残すか返信してください。

どうもありがとう。