問題タブ [nsfastenumeration]

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 投票する
4 に答える
2114 参照

objective-c - SWIFT 3.0 移行エラー - ジェネリック Obj-C クラスの拡張は、実行時にクラスのジェネリック パラメータにアクセスできません

このコードは Swift 2 で正常に動作しています。

Swift3にアップグレードしてから

ジェネリック Objective-C クラスの拡張は、実行時にクラスのジェネリック パラメータにアクセスできません

これを修正する方法がわかりません。どんな助けでも大歓迎です!

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

find - Swift 列挙子と GNU 検索の不一致

私は好奇心から Swift で GNU のfindようなエミュレーターを書きましたが、この時間の不一致に遭遇しました:

Swift コードは次のとおりです。

Swiftenumeratorが GNU よりも大幅に遅いのはなぜfindですか? Swift コードを高速化して、同様の速度に到達する方法はありますfindか?

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

ios - 理由で NSGenericException を取得しています: '*** コレクション列挙中に変異しました。

Collection <NSConcreteHashTable: 0x282c34140> was mutated while being enumeratedコードで高速列挙を実際に使用していないにもかかわらず、この NSGenericException を理由で取得します。

このクラッシュは、NSFetchedResultsController デリゲートが Core Data オブジェクトのプロパティとして呼び出されて更新されたときにトリガーされ、最終的にこのメソッドが呼び出されます。

基本的に、MKAnnotation オブジェクト (実際には CoreData NSManagedObject でもあります) の「座標」値を変更しようとしていますが、最終的にクラッシュします。奇妙なことに、上記のコードで「高速列挙」が行われていないにもかかわらず、「列挙中にコレクションが変更されました」というエラーが表示されます。つまり、それ自体が辞書の一部である可変配列内のオブジェクトの 1 つのプロパティを変更しています。

残念ながら、「注釈」は NSManagedObject であるため、配列から「コピー」して、コピーした値を変更し、配列内のオブジェクトを置き換えることはできません。

クラッシュ レポートは次のようになります。

誰かがここで問題を見つけるのを手伝ってくれますか? 表示されない「列挙」を使用していますか? それとも何か他のことが起こっていますか?