Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
1.1k views
in Technique[技术] by (71.8m points)

ios swift share-extension: what are all and the best ways to handle images?

i have a share-extension handling different kinds of formats, like images.

for attachment in content.attachments as! [NSItemProvider] {
    if attachment.hasItemConformingToTypeIdentifier(kUTTypeImage as String) {
        attachment.loadItem(forTypeIdentifier: kUTTypeImage as String, options: nil) { data, error in
          if error == nil {
            var contentData: Data? = nil

            //data could be raw Data
            if let data = data as? Data {
              contentData = data

            //data could be an URL
            } else if let url = data as? URL {
              contentData = try? Data(contentsOf: url)
            } 

            //data could be an UIImage object (e.g. ios11 screenshot editor)
            else if let imageData = data as? UIImage {
              contentData = UIImagePNGRepresentation(imageData)
            } 

            // proceed here with contentData

          }

i came across now 3 different ways how the image data is provided in the loaditem-method as NSSecureCoding (in case of kUTTypeImage) and wonder if this is the right way to handle it and if i am missing other ways how images are represented.

It seems not defined how applications provide their image-data to a share extension.

Is there another (better) generic way to get to know what is coming via the data-variable (NSSecureCoding)? Generic call to a decoder?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)
Waitting for answers

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...