問題タブ [swift2.2]
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.
swift - Swift の変数型について
String!
タイプとタイプの違いがよくわかりましたString?
。しかし、String
タイプはどうですか?String!
とString?
迅速な違いは何ですか?String!
タイプはタイプと同じString
ですか?
たとえば、次のようなクラスがあります。
String
コンパイラ エラーはありません。型が型と同じであるように見えますString!
。しかし、よくわかりません...
ios - AnyObject をキャストしますか? [String:AnyObject?] に常に失敗する
当初、私はSwift 2.1でこのコードを持っていました
Swift 2.2 にアップグレードした後、次のようなエラーが発生しました
「添え字」へのあいまいな参照
ラインのためにprint(jsonData["message"])
コードをこれに変更しました
ただし、このステートメントは常に失敗します。AnyObject? [String:AnyObject?] への型キャストは行われず、合体値は nil になります。AnyObject?
from からto にキャストしたいと思い[String:AnyObject]
ます。出来ますか?
ios - 行のオプションを動的にロードする
これは、 Eurekaと呼ばれる Swift オープン ソース プロジェクトに関連する質問です。ここでタグを監視しているため、SO にこの質問を投稿しています。
viewDidLoad
では、View Controller のメソッドでフォームを作成します。同時に、API への http 呼び出しを行い、データ (ジョブ) のリストを取得します。この呼び出しは非同期です。これらのジョブをオプション値として に表示したいと考えていますPushRow
。
この API 呼び出しは非同期であるため、このデータが受信されるまでに、フォームは既にセットアップされています。http 呼び出しからのジョブのリストを設定するクラス レベルの配列のセットアップがあります。その同じ配列がその行のoptions
プロパティに割り当てられます。データを受け取ったら、値を配列に割り当てます。しかし、次に行って をタップするとPushRow
、空です。
特定の行またはフォーム全体のデータを更新または再読み込みする方法はありますか?
更新 1
以下のケビンの回答に従って、コードを次のように変更しました。
しかし、何らかの理由で、まだ機能していません。オプションは空です。タグを介してセルが正しく取得されていることを確認しました。とにかくこれに失敗したので、私も試しtableView.reloadData()
てみましたが、役に立ちませんでした。
swift - NSRegularExpression Swift を使用して文字列から文字列を検索
String
NSRegularExpression を使用して画像の URL を取得したい。
単純な文字列だけで機能しますが、HTML
String
.
作業例:
出力:
しかし、これでは機能しません: http://www.writeurl.com/text/478sqami3ukuug0r0bdb/i3r86zlza211xpwkdf2m
xcode7 - iOS 9.3 サブクラスで定義されたメソッドに #selector を使用する方法
MyBaseCell クラスから複数のセルを継承しました。私の ViewController クラスでは、これらのセルにアクセスし、それらを MyBaseCell インスタンスとして型キャストし、エラー ラベルに応答するかどうかを確認してから、そのラベルにエラー メッセージを割り当てます。respondsToSelector
メソッドで文字列リテラルを使用するのは簡単でした。
これはViewControllerクラスの既存のコードで、警告を出しています。
XCode 7.3 は、Objective-C セレクター 'errorLabel' で宣言されたメソッドがないという警告を出します。に変更しようとするとrespondsToSelector(#selector(MyBaseCell.errorLabel))
、「Type MyBaseCell has no member errorLabel」というエラーが発生します。これは、errorLabel が MyBaseCell のサブクラスの一部に含まれているためです。
ViewController クラスの新しいコードで、構文エラーが発生しています。
ios - 「?」を避ける方法はありますか?Swiftで何度もアンラップするようにマークしますか?
"?" を使用して、変数をオプションとして定義します。たとえば、次のようになります。
次に、プログラム全体で、「?」を使用して変数名の値を取得します。次に例を示します。
とにかく「?」を取り除くことができますか?オプションの変数をアンラップするたびに。