Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 无法转换类型为';绳子';到预期的参数类型';通知';_Swift - Fatal编程技术网

Swift 无法转换类型为';绳子';到预期的参数类型';通知';

Swift 无法转换类型为';绳子';到预期的参数类型';通知';,swift,Swift,在将记录放入数组之前,我试图使用xcodeswift检查记录的id 这是代码。但是,我得到了以下错误 通知。swift:50:46:无法转换“String?!”类型的值到预期的参数类型“通知” 在这条线上 *if (readRecordCoreData(result["MessageID"])==false)* 请找个人解释一下这个错误好吗 import CoreData struct Notifications{ var NotifyID = [NSManagedObject]()

在将记录放入数组之前,我试图使用
xcode
swift检查记录的id

这是代码。但是,我得到了以下错误

通知。swift:50:46:无法转换“String?!”类型的值到预期的参数类型“通知”

在这条线上

*if (readRecordCoreData(result["MessageID"])==false)*
请找个人解释一下这个错误好吗

import CoreData

struct Notifications{

var NotifyID = [NSManagedObject]()

  let MessageDesc: String
  let Messageid: String


init(MessageDesc: String, Messageid:String) {

    self.MessageDesc = MessageDesc
   self.Messageid = Messageid
   // self.MessageDate = MessageDate



}

static func MessagesWithJSON(results: NSArray) -> [Notifications] {
    // Create an empty array of Albums to append to from this list

    var Notification = [Notifications]()

    // Store the results in our table data array
    if results.count>0 {

        for result in results {

           //get fields from json

            let Messageid = result["MessageID"] as! String
            let MessageDesc = result["MessageDesc"] as? String

            let newMessages = Notifications(MessageDesc: MessageDesc!, Messageid:Messageid)



            //check with id's from core data
            if (readRecordCoreData(result["MessageID"])==false)
               {

                Notification.append(newMessages)
            }



        }
    }
    return Notification
}

//check id
func readRecordCoreData(Jsonid: String) -> Bool {

    var idStaus = false

    let appDelegate =
        UIApplication.sharedApplication().delegate as! AppDelegate

    let managedContext = appDelegate.managedObjectContext

    //2
    let fetchRequest = NSFetchRequest(entityName: "ItemLog")


    //3
    do {

        let resultsCD = try! managedContext.executeFetchRequest(fetchRequest)



        if (resultsCD.count > 0) {

            for i in 0 ..< resultsCD.count {
                let match = resultsCD[i] as! NSManagedObject
                let id = match.valueForKey("notificationID") as! String

                if (Jsonid as String! == id)
                {
                    idStaus = true

                }
                else{

                    idStaus = false

                }

            }
        }

    } catch let error as NSError {
        print("Could not fetch \(error), \(error.userInfo)")
    }

    return idStaus

}
导入核心数据
结构通知{
var NotifyID=[NSManagedObject]()
让MessageDesc:String
让Messageid:String
init(MessageDesc:String,Messageid:String){
self.MessageDesc=MessageDesc
self.Messageid=Messageid
//self.MessageDate=MessageDate
}
静态func MessagesWithJSON(结果:NSArray)->[通知]{
//在此列表中创建要附加到的空相册数组
var通知=[通知]()
//将结果存储在我们的表数据数组中
如果结果为0,则计数>0{
为了得到结果{
//从json获取字段
让Messageid=result[“Messageid”]作为!字符串
将MessageDesc=result[“MessageDesc”]设为?字符串
让newMessages=通知(MessageDesc:MessageDesc!,Messageid:Messageid)
//使用核心数据中的id进行检查
if(readRecordCoreData(结果[“MessageID”])==false)
{
Notification.append(新消息)
}
}
}
退货通知
}
//核对身份证
func readRecordCoreData(Jsonid:String)->Bool{
var idStaus=false
让appDelegate=
UIApplication.sharedApplication().delegate为!AppDelegate
让managedContext=appDelegate.managedObjectContext
//2
让fetchRequest=NSFetchRequest(entityName:“ItemLog”)
//3
做{
让resultsCD=try!managedContext.executeFetchRequest(fetchRequest)
如果(resultsd.count>0){
对于0中的i..
您的一个方法是静态的,另一个不是:

func readRecordCoreData(Jsonid: String) -> Bool 
static func MessagesWithJSON(results: NSArray) -> [Notifications]
根据您想要完成的任务,您可以声明static、none或replace

 //check with id's from core data
if (readRecordCoreData(result["MessageID"])==false)
{
    Notification.append(newMessages)
}


不确定代码是否能在编译后正常工作,但是由于存在许多可读性问题,我看不出您是如何得到错误消息的。我希望您能得到一条关于将
String?
发送到期望
String
的方法的错误消息,但是这段代码的可读性有太多问题,谁知道呢…是的。。抱歉从某处获取了代码并添加了func。无论如何,谢谢:)
 //check with id's from core data
if (Notifications.readRecordCoreData(Messageid)==false)
{
    Notification.append(newMessages)
}