2012-05-17 42 views
6

Tôi đang tải JSON nhưng tôi muốn kiểm tra số "URL": "", trong json trống đôi khi ID trống rỗng như thế nào tôi có thể kiểm tra?Với iOS, cách kiểm tra xem URL có trống không

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

} 
else 
{ 

} 

Lỗi:

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

Nó đã được phân tích cú pháp chưa? Url có phải là NSURL hoặc NSString không? –

+0

URL là url .. – Jones

+1

Có, nhưng loại đối tượng là gì? Từ câu trả lời được chấp nhận, có vẻ như đó là NSString –

Trả lời

5

Hmm, hãy thử

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

Tôi tin rằng Jones đang hỏi cách kiểm tra giá trị trống, được hiển thị dưới dạng "", trong từ điển "URL": "", –

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

Hoặc

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

Hoặc Kiểm tra với chiều dài URL

2

Nếu đối tượng URL là một chuỗi, bạn có thể sử dụng một trong hai,

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

hoặc

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

Nếu đối tượng URL là một NSURL, bạn có thể sử dụng:

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

Tùy thuộc vào cách nó được lưu trữ, bạn có thể cần phải kiểm tra xem nó là null (URL == nil) hoặc nếu chuỗi rỗng. Giả sử URL của bạn được lưu trữ trong một NSString, bạn sẽ đi một cái gì đó như:

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

Khi làm việc với dữ liệu JSON tôi có xu hướng phải rất cẩn thận. Hãy nói rằng tôi có một JSON deserialized vào một NSDictionary. Với điều đó, tôi cần phải kéo một chuỗi liên kết với khóa "URL" ra khỏi từ điển và biến nó thành một NSURL. Ngoài ra, tôi không tự tin 100% trong JSON hoặc giá trị chuỗi.

tôi sẽ làm một cái gì đó như thế này:

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]; 
} 

Sau này, URL sẽ phải hoặc là một con số không hoặc một URL hợp lệ. -isKindOfClass: loại bỏ giá trị là một NSDictionary, NSArray, NSNumber hoặc NSNull. -length> 0 lọc ra chuỗi rỗng (như bạn biết, có thể làm hỏng một NSURL). Paranoia thêm giải mã sau đó mã hóa lại các URL thoát sẽ xử lý các URL được mã hóa một phần.

0

Hãy thử điều này. Nó làm việc cho tôi.

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]; 
} 
Các vấn đề liên quan