これはかなり長い間働いていた機能(コアデータに情報を挿入するのに非常に便利です)です。私はSwift 3.0に移動して以来、最初の行でクラッシュして問題を抱えています。私は何か見落としてますか?コアデータ/スウィフト3.0
func insertObject<T:NSManagedObject>(_ entity:T.Type, dico:NSDictionary, notification:String!) -> NSManagedObject? {
let entityName = entity.entityName
let newItem = NSEntityDescription.insertNewObject(forEntityName: entityName, into:managedObjectContext!) as! T
for (key, value) in dico {
if let value:AnyObject = value as AnyObject? {
(newItem as NSManagedObject).setValue(value, forKey: key as! String)
}
}
do {try managedObjectContext!.save()
// We may send a notification:
if (notification != nil)
{NotificationCenter.default.post(name: Notification.Name(rawValue: notification), object: nil)}
} catch let error as NSError {print(error)}
return newItem
}
私は、デバッガコンソールにこのエラーが出るの横:
fatal error: Index out of range
そして私は、アセンブリコードと一緒に、以下を参照してくださいすることができます
0x1007811f8 <+116>: bl 0x100674b80 ; function signature specialization <preserving fragile attribute, Arg[1] = [Closure Propagated : reabstraction thunk helper from @callee_owned (@unowned Swift.UnsafeBufferPointer<Swift.UInt8>) ->() to @callee_owned (@unowned Swift.UnsafeBufferPointer<Swift.UInt8>) -> (@out()), Argument Types : [@callee_owned (@unowned Swift.UnsafeBufferPointer<Swift.UInt8>) ->()]> of generic specialization <preserving fragile attribute,()> of Swift.StaticString.withUTF8Buffer <A> ((Swift.UnsafeBufferPointer<Swift.UInt8>) -> A) -> A
-> 0x1007811fc <+120>: brk #0x1
クラッシュが発生したときにどのようなエラーメッセージが表示されますか? –
このメッセージは、「致命的なエラー:インデックスが範囲外です。」 – Michel
これは役立つ場合があるので、詳しい情報を提供するために投稿を編集しました。 – Michel