簡體   English   中英

將消息發送給多個收件人時,Swift /核心數據獲取到數組

[英]Swift / core data fetching to array when sending message to multiple recipients

我正在嘗試從核心數據中獲取電話號碼,並將短信發送給多個收件人。

用for循環獲取數字,但是我不能在for循環之外使用它。 (我可以將它們寫入控制台,但不能寫入“ messageVC.recipients = tela;”。

錯誤是“使用無法解析的標識符”,我正在使用Xcode6

這是我的代碼;

@IBAction func sendMessages(sender: AnyObject) {

    let entityDescription =
    NSEntityDescription.entityForName("Person",
        inManagedObjectContext: managedObjectContext!)

    let request = NSFetchRequest()
    request.entity = entityDescription

    var error: NSError?

    var objects = managedObjectContext?.executeFetchRequest(request,
        error: &error)

    if let results = objects {

        if results.count > 0 {
            var saydir = results.count - 1
            for (var i=0; i < results.count; i++) {
                let match = results[i] as NSManagedObject
                var tela = match.valueForKey("number") as String
                println(tela)
            }

        } else {

        }

    }

    var messageVC = MFMessageComposeViewController()
    messageVC.recipients = tela;
    messageVC.body = "text1" + "text2";
    messageVC.messageComposeDelegate = self;

    self.presentViewController(messageVC, animated: false, completion: nil)
}

var tela = match.valueForKey("number") as Stringvar tela = match.valueForKey("number") as String范圍在for循環內(即,在for循環外無法訪問)。

您要么必須:

  • 在外部創建var(將其放置在與使用它相同的范圍內);
  • 在您擁有的實際tela變量旁邊執行操作。

編輯1:

代碼可能是這樣的(未經測試):

@IBAction func sendMessages(sender: AnyObject) {

    let entityDescription =
    NSEntityDescription.entityForName("Person",
        inManagedObjectContext: managedObjectContext!)

    let request = NSFetchRequest()
    request.entity = entityDescription

    var error: NSError?

    var recipients = [String]()

    if let results = managedObjectContext?.executeFetchRequest(request,
        error: &error) {

        if results.count > 0 {
            var saydir = results.count - 1
            for (var i=0; i < results.count; i++) {
                let match = results[i] as NSManagedObject
                var tela = match.valueForKey("number") as String
                println(tela)

                recipients.append(tela)
            }

        } else {

        }

    }

    var messageVC = MFMessageComposeViewController()
    messageVC.recipients = recipients;
    messageVC.body = "text1" + "text2";
    messageVC.messageComposeDelegate = self;

    self.presentViewController(messageVC, animated: false, completion: nil)
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM