2016-09-25 15 views
6

वांछित व्यवहार संपर्क स्विफ्ट से छवि प्राप्त

मैं सोच रहा हूँ कि कैसे सबसे अच्छा करने के लिए

  1. स्विफ्ट

    में निम्न प्रदर्शन एक संपर्क पिकर खिड़की
  2. एक उपयोगकर्ता किसी संपर्क का चयन करने की अनुमति दें
  3. उस संपर्क से एक छवि प्राप्त करें।

रिसर्च

इस सवाल का शोध में, मैं निर्धारित किया है कि, IOS 9 में शुरू, एप्पल एक नया ढांचा, Contacts पेश किया, संपर्कों को ऐक्सेस करने के लिए। मैंने यह भी सीखा कि Their documentation किसी संपर्क से जानकारी प्राप्त करने के लिए Predicates नामक सिस्टम का उपयोग करने का वर्णन करता है। हालांकि, मुझे यह सुनिश्चित नहीं है कि इसे कैसे कार्यान्वित किया जाए।

कार्यान्वयन

Based primarly on this tutorial, मैं पता लगा है कि कैसे संपर्क पिकर खिड़की पेश करने के लिए।

import UIKit 
import Contacts 
import ContactsUI 

class ViewController: UIViewController, CNContactPickerDelegate { 


override func viewDidLoad() { 
    super.viewDidLoad() 
    // Do any additional setup after loading the view, typically from a nib. 
} 
@IBAction func contactsPressed(_ sender: AnyObject) { 
    let contactPicker = CNContactPickerViewController() 
    contactPicker.delegate = self; 

    self.present(contactPicker, animated: true, completion: nil) 
} 

func contactPicker(picker: CNContactPickerViewController, didSelectContactProperty contactProperty: CNContactProperty) { 
    //Here is where I am stuck - how do I get the image from the contact? 
} 

} 

अग्रिम धन्यवाद !!

उत्तर

7

सेब से API reference doc के अनुसार छवियों संपर्क से संबंधित तीन गुण होते हैं:

छवि गुण

वर imageData: डेटा? एक संपर्क की प्रोफाइल तस्वीर।

var थंबनेल इमेजडेटा: डेटा? संपर्क की प्रोफाइल तस्वीर का थंबनेल संस्करण।

var imageData उपलब्ध: बूल इंगित करता है कि किसी संपर्क में प्रोफ़ाइल चित्र है या नहीं।

आप CNContactProperty से CNContact उदाहरण प्राप्त कर सकते हैं, और फिर CNContact कक्षा में imageData एक्सेस करते हैं।

तो अपने कोड कुछ ऐसा दिखाई देगा:

func contactPicker(picker: CNContactPickerViewController, didSelectContactProperty contactProperty: CNContactProperty) { 
    let contact = contactProperty.contact 
    if contact.imageDataAvailable { 
     // there is an image for this contact 
     let image = UIImage(data: contact.imageData) 
     // Do what ever you want with the contact image below 
     ... 
    } 
} 
+0

धन्यवाद! मैं मदद की सराहना करता हूं !! – rocket101

संबंधित मुद्दे