0

今日問題が発生しました。

私は DigitsKit + Parse、User real-Validation 用の DigitsKit および Parse を便利なフレームワークとして使用して、ユーザーと私のために簡単に sinUp、ログインなどを行います。

仕組みは次のとおりです。

  1. ユーザーは、textField に電話番号とパスワードを入力します

  2. その後、DigitsKit は SMS と短いコードで検証し、そのユーザーは本物であり、SMS が USER に届き、検証 textField に入力します。すべてが問題ない場合 -> ユーザー名とパスワードを PFUser として Parse DB に保存します。

    ユーザー名(ParseDB内) = user'sMobilePhone(テキストフィールド内)

  3. サインアップしてログインした後、ユーザーが新しいビューで「FindFriends」ボタンを押すと、ここに友達検索システムが表示されるはずですが、ここに問題があります...以下のコントローラーのケースを見てください:

    import UIKit
    import SwiftAddressBook
    import AddressBook
    import Parse
    
    class FriendsViewController: UIViewController {
    let status : ABAuthorizationStatus = SwiftAddressBook.authorizationStatus()
    
        var addrssbk : ABAddressBook!
    var addressBook: SwiftAddressBook? = swiftAddressBook
    
    
    override func viewDidLoad() {
        super.viewDidLoad()
        GetContactNumbers()
              }
    
    
    
    override func viewDidAppear(animated: Bool) {
    
    
    }
    
    
    
    
    
    
    func createAddressBook() -> Bool {
    if self.addressBook != nil {
        return true
    }
    var err : Unmanaged<CFError>? = nil
    let addrssbk : ABAddressBook? = ABAddressBookCreateWithOptions(nil, &err).takeRetainedValue()
    if addrssbk == nil {
        println(err)
        self.addressBook = nil
        return false
    }
    self.addrssbk = addrssbk
    return true
    }
    
       func determineStatus() -> Bool {
    let status = ABAddressBookGetAuthorizationStatus()
    switch status {
    case .Authorized:
        return self.createAddressBook()
    case .NotDetermined:
        var ok = false
        ABAddressBookRequestAccessWithCompletion(nil) {
            (granted:Bool, err:CFError!) in
            dispatch_async(dispatch_get_main_queue()) {
                if granted {
                    ok = self.createAddressBook()
                }
            }
        }
        if ok == true {
            return true
        }
        self.addressBook = nil
        return false
    case .Restricted:
        self.addressBook = nil
        return false
    case .Denied:
        self.addressBook = nil
        return false
    }
    }
    
    
    func GetContactNumbers() {
    
    swiftAddressBook?.requestAccessWithCompletion({ (success, error) -> Void in
        if success {
            if let people = swiftAddressBook?.allPeople {
                for person in people {
                    if let numbers = person.phoneNumbers {
                            let names = person.compositeName
                       NSLog("%@", numbers.map( {$0.value} ))
                       NSLog("%@", names!)
    
    
    
                       if let query = PFUser.query() {
    
                           query.whereKey("username", equalTo: "\(person.phoneNumbers)")
                           var friends = query.findObjects()
                           println(friends)
                        }
    
    
    
                    //the value entry of the multivalue struct contains the data
    
                    }
                }
            }
            //do something with swiftAddressBook
    
        }else {
            //no success. Optionally evaluate error
         }
    })
    
    
    }
    
    
    
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
    
    
    
    }
    

各 phoneNumber を取得して、ParseDB のユーザー名と比較することはできません。これをどのように行うべきか提案はありますか? またはヒット/ソリューションはありますか?

PS、私は配列、辞書、およびその他の配列/キー値型のデータとループにもちょっと問題があるので、どんな助けも完璧です

4

1 に答える 1