2011-04-20 23 views
7

Possible Duplicate:
How can i avoid Location service in AlAssetLibrary? Can i retrieve files using AlAssetLibrary without using Location Service?मैं AlassetLibrary से स्थान सेवा से कैसे बच सकता हूं?

हाय सब, मैं iphone विकास और Obj सी में एक नौसिखिया हूँ। मैं फोटो लाइब्रेरी से छवियों को पुनर्प्राप्त करने के लिए अपने एप्लिकेशन में "अलास्सेट लाइब्रेरी" का उपयोग कर रहा हूं। मैंने पहचाना कि "अलास्सेटप्रॉपर्टी स्थान" संपत्ति कुंजी केवल कॉलर के लिए स्थान सेवाएं सक्षम होने पर ही उपलब्ध है। संपत्ति की स्थान जानकारी पुनर्प्राप्त करने की कुंजी है। लेकिन मैं "अलास्सेटप्रॉपर्टी लोकेशन" प्रॉपर्टी का उपयोग नहीं कर रहा हूं। मैं केवल एलास्सेटप्रॉपर्टीरल्स का उपयोग कर रहा हूं।

जब भी मैं किसी नए डिवाइस में अपने आवेदन वहाँ के साथ संदेश एक संदेश बॉक्स है "स्थान की जरूरत सेवा .." मैं "ALAssetPropertyLocation" संपत्ति को छिपाने में सक्षम कर सकते हैं तैनात करने के लिए कोशिश कर रहा हूँ?

मैं वास्तव में सराहना करता हूं कि कोई मेरी समस्या तक पहुंचने के सही तरीके से मेरी सहायता कर सकता है, और यदि संभव हो तो मेरा प्रारंभ करने के लिए कोई नमूना कोड।

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

यह मेरा कोड है:

//Getting image url from dictionary according to the user input 
NSURL *imageurl = [dict objectForKey: [youSaid text]]; 

//Getting asset from url 
typedef void (^ALAssetsLibraryAssetForURLResultBlock)(ALAsset *asset); 
typedef void (^ALAssetsLibraryAccessFailureBlock)(NSError *error);  
ALAssetsLibraryAssetForURLResultBlock resultblock = ^(ALAsset *myasset) 
{ 
    ALAssetRepresentation *rep = [myasset defaultRepresentation]; 
    CGImageRef iref = [rep fullResolutionImage]; 
    //Setting asset image to image view according to the image url 
    [imageview setImage:[UIImage imageWithCGImage:iref]];   
}; 
ALAssetsLibraryAccessFailureBlock failureblock = ^(NSError *myerror) 
{ 
    NSLog(@"Error, cant get image - %@",[myerror localizedDescription]); 
}; 

if(imageurl != nil) 
{ 
ALAssetsLibrary *assetLibrary=[[ALAssetsLibrary alloc] init]; 
[assetLibrary assetForURL:imageurl resultBlock:resultblock failureBlock:failureblock];  
} 

उत्तर

6

"स्थान सेवाओं" सक्षम करने AssetsLibrary प्रयोग करने के लिए एक आवश्यकता है। कारण यह है कि फोटो-लाइब्रेरी में किसी भी फोटो/वीडियो में जिओडाटा हो सकता है। यह डेटा केवल एलास्सेटप्रॉपर्टीरल्स के माध्यम से उपलब्ध नहीं है, बल्कि अगर आप संपत्ति से कच्चे डेटा को पढ़ते हैं (GetBytes का उपयोग करके: ऑफसेट से: लंबाई: त्रुटि: अलास्सेट्स प्रस्तुति का तरीका)। चूंकि कच्चे छवि डेटा से भौगोलिक मेटाडेटा को पट्टी करने का कोई तरीका नहीं है (यदि स्थान सेवाएं अक्षम हैं), मुझे लगता है कि एसेट्स लाइब्रेरी का उपयोग करने के लिए "स्थान सेवाएं" अनिवार्य बनाने के लिए डिज़ाइन निर्णय अनिवार्य था।

यह आवश्यकता उपयोगकर्ता को भ्रमित कर सकती है। तो आपको 2 चीजें करने की आवश्यकता है:

1) यदि उपयोगकर्ता स्थान सेवाओं तक पहुंच से इंकार कर देता है, तो एक स्पष्ट संदेश प्रस्तुत करें, जबकि आपके ऐप को इस एक्सेस की आवश्यकता है और ऐप वास्तव में वर्तमान स्थिति या किसी भी जीपीएस/डेटा को निर्धारित नहीं करता है ।

2) प्रारंभिक संवाद पर उपयोगकर्ता ने "नहीं" दबाए जाने के बाद, स्पष्ट सेवाओं को स्थान सेवाओं को सक्षम करने के तरीके को प्रदर्शित करें।

चीयर्स,

हेंड्रिक

+0

स्थान सेवाओं कि कौन सी फ़ोटो यूआरएल/रास्तों का उपयोग करने की एकमात्र तरीका की तरह लगता है के लिए अनिवार्य? यह दुखद है। – AlvinfromDiaspar

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