2012-05-17 16 views
6

मैं एक JSON लोड कर रहा हूं लेकिन मैं "URL": "", की जांच करना चाहता हूं जेसन खाली है कभी-कभी आईडी खाली है मैं कैसे जांच सकता हूं?आईओएस के साथ, यह जांचने के लिए कि यूआरएल खाली है या नहीं,

if(URL == HOW TO CHECK IF EMPTY?) 
{ 

} 
else 
{ 

} 

त्रुटि:

*** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[__NSArrayI objectAtIndex:]: index 0 beyond bounds for empty array' 
*** First throw call stack: 
+1

यह पहले से ही पार्स है? क्या यूआरएल एनएसआरएल या एनएसएसटींग है? –

+0

यूआरएल एक यूआरएल है .. – Jones

+1

हां, लेकिन यह किस प्रकार की वस्तु है? स्वीकार्य उत्तर से ऐसा लगता है कि यह एक एनएसएसटींग –

उत्तर

5

हम्म,

if ([URL isEqualToString:@"The URL?"]) { 
+0

था मेरा मानना ​​है कि जोन्स पूछ रहे हैं कि "URL" में "" "के रूप में दिखाए गए खाली मूल्य को कैसे चेक किया जाए," " –

3
if (URL == [NSNull null]) { 
    //... 
} else { 
    //... 
} 

या

if (URL == nil) { 
    //... 
} else { 
    //... 
} 

या यूआरएल

2

यूआरएल वस्तु एक स्ट्रिंग है की लंबाई के साथ की जाँच करें, या तो आप उपयोग कर सकते हैं,

if([string length] == 0) { //empty } 

या

if([string isEqualToString:@""]) { // empty } 

यूआरएल वस्तु एक NSURL है, तो आप उपयोग कर सकते हैं:

if([[url absoluteString] isEqualToString:@""]) { //empty } 
0

यह कैसे संग्रहीत किया जाता है के आधार पर आप अगर यह रिक्त है सत्यापित करना पड़ सकता (URL == nil) या यदि स्ट्रिंग खाली है। मान लिया जाये कि अपने URL एक NSString में जमा हो जाती है, तो आप की तरह कुछ के लिए जाना होगा:

BOOL empty = URL == nil || [URL length] == 0; 
2

का प्रयास करते हैं JSON डेटा के साथ काम कर रहा बहुत सावधान हो जाते हैं। मान लें कि मेरे पास एक JSON एक NSDictionary में deserialized है। इसके साथ, मुझे शब्दकोश के बाहर "यूआरएल" कुंजी से जुड़े एक स्ट्रिंग को खींचने और इसे एक NSURL चालू करने की आवश्यकता है। इसके अलावा, मैं JSON या स्ट्रिंग मान में 100% आत्मविश्वास नहीं हूं।

मैं कुछ इस तरह करना होगा:

NSURL *URL = nil; 
id URLObject = [JSON valueForKey:@"URL"]; 
if ([URLObject isKindOfClass:[NSString class]] && [URLObject length] > 0) { 
    URLObject = [URLObject stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 
    URLObject = [URLObject stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 
    URL = [NSURL URLWithString:URLObject]; 
} 

इस के बाद, यूआरएल या तो एक शून्य या एक मान्य URL होगा। -इसकिंडऑफ क्लास: एनएस डिक्शनरी, एनएसएआरआरई, एनएसएनंबर, या एनएसएनयूएल के मूल्य को कम करता है। -लम्बाई> 0 खाली स्ट्रिंग को फ़िल्टर करता है (जो, जैसा कि आप जानते हैं, एक NSURL गड़बड़ कर सकते हैं)। डीकोडिंग का अतिरिक्त परावर्तक फिर यूआरएल को फिर से एन्कोड करने से बच निकलता है आंशिक रूप से एन्कोड किए गए यूआरएल को संभालता है।

0

इसे आजमाएं। यह मेरे लिए काम किया।

NSURL *url; 
if ([url path]) 
{ 
    // url is not empty 
} 
else 
{ 
    // url is empty 
} 
0
if (url.absoluteString.length==0) 
{ 
    UIAlertView *alert=[[UIAlertView alloc]initWithTitle:@"Error" message:@"Please enter a url" delegate:nil cancelButtonTitle:nil otherButtonTitles:@"Ok", nil]; 
    [alert show]; 
} 
संबंधित मुद्दे