Làm cách nào để kiểm tra nếu một chuỗi trống trong Objective-C?


Câu trả lời:


1156

Bạn có thể kiểm tra nếu [string length] == 0. Điều này sẽ kiểm tra xem đó có phải là một chuỗi hợp lệ nhưng trống (@ "") cũng như nếu nó không, vì việc gọi lengthvào số không cũng sẽ trả về 0.


12
Có một số NSStrings rất hiếm trong đó điều này sẽ dẫn đến âm tính giả (nói rằng chuỗi không trống, khi, vì mục đích thực tế, nó là). Hãy xem xét @"\u200B"(chỉ bao gồm ký tự Unicode ZERO WIDTH SPACE . In ra sẽ in 0 ký tự (xác minh bằng phông chữ đơn cách), nhưng string.length sẽ cung cấp 1. Có các ký tự Unicode khác (như CHARAC REPLACEMENT CHARACTER ) hoạt động tương tự. có được cái sau khi phân tích văn bản PDF.
fzwo

43
@fzwo không phải là một ass, nhưng trên lý thuyết nó không cho kết quả âm tính giả. Nó hoạt động chính xác như bạn mong đợi. Giải thích của bạn về những gì ZERO WIDTH SPACEkhông thực sự quan trọng, vì dù sao cũng @"\u200B" một ký tự nên nếu bạn kiểm tra chuỗi có trống không, nó sẽ cho biết đó không phải là vì có một ký tự trong đó. Nó chỉ không thể in được theo tiêu chuẩn Unicode.
bmeulmeester

2
Tất nhiên là đúng về mặt kỹ thuật, tôi không tranh luận về điều đó. Tôi chỉ muốn cảnh báo rằng điều này có thể không thể hiện hành vi dự định hoặc dự kiến, đó là lý do tại sao tôi viết "cho mục đích thực tế". Nó phụ thuộc vào ý nghĩa dự định của "trống rỗng".
fzwo

4
Đó không phải là một âm tính giả. "Không gian không giá trị" là một ký tự unicode như bất kỳ ký tự nào khác. Nó chỉ "đáng ghi nhớ" nếu có liên quan đến ứng dụng của bạn. (Suy nghĩ tuyệt vời, fzwo!)
Fattie

2
Hãy cho tôi biết nếu tôi sai, nhưng tôi nghĩ bạn cũng có thể bỏ qua == 0 phần và thêm phần phủ định ở phía trước : ![string length]. Có vẻ sạch sẽ hơn.
damirstuhec

126

Câu trả lời của Marc là chính xác. Nhưng tôi sẽ nhân cơ hội này để đưa một con trỏ tới tổng quát của Wil Shipley isEmpty, mà anh ấy đã chia sẻ trên blog của mình :

static inline BOOL IsEmpty(id thing) {
return thing == nil
|| ([thing respondsToSelector:@selector(length)]
&& [(NSData *)thing length] == 0)
|| ([thing respondsToSelector:@selector(count)]
&& [(NSArray *)thing count] == 0);
}

26
Nếu bạn muốn điều này được khái quát hóa, người ta có thể triển khai logic này dưới dạng một thể loại trên NSObject thay vì sử dụng một phương thức tĩnh như được hiển thị ở đây.
Brad The App Guy

16
Điều kỳ lạ là điều này không thực sự kiểm tra [NSNull null].
Peter N Lewis

14
Nếu bạn đang ở trong một tình huống mà bạn không biết bạn đang kiểm tra loại đối tượng nào, tôi đoán điều này sẽ hiệu quả. Tuy nhiên tôi đề nghị rằng nếu bạn không biết liệu một đối tượng là NSData hay NSArray, bạn có vấn đề lớn hơn. Macro tiếp theo của bạn sẽ là gì sau cuộc gọi này, condenseToSingleNSData (id id)? mở rộngToNSArray (điều id)? Sớm hay muộn, bạn sẽ hỏi bạn đang đối phó với loại lớp nào, tốt hơn là thực hiện nó trong tài liệu tham khảo đầu tiên.
Brane

1
@BradSmith, người ta có thể tạo một danh mục cho nó nhưng không tính được giá trị nào vì phương thức này sẽ không được gọi. Chẳng hạn, nếu thing = nil, [thing IsEmpty] sẽ không được gọi và sẽ luôn trả về false / NO. Để kiểm tra nil, cần phải có một tham số. Các đối tượng Nil không thể so sánh mình là nil thông qua một danh mục.
Chris

3
@chris sau đó bạn có thể thay đổi phương thức danh mục thành -isNotEmpty:)
nielsbot

93

Cách tiếp cận đầu tiên là hợp lệ, nhưng không hoạt động nếu chuỗi của bạn có khoảng trắng ( @" "). Vì vậy, bạn phải xóa khoảng trắng này trước khi thử nghiệm nó.

Mã này xóa tất cả các khoảng trống ở cả hai phía của chuỗi:

[stringObject stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet] ];

Một ý tưởng hay là tạo một macro, vì vậy bạn không cần phải nhập dòng quái vật này:

#define allTrim( object ) [object stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet] ]

Bây giờ bạn có thể sử dụng:

NSString *emptyString = @"   ";

if ( [allTrim( emptyString ) length] == 0 ) NSLog(@"Is empty!");

3
Tại sao sử dụng macro khi không cần thiết? Trong trường hợp này, bất kỳ loại an toàn nào cũng được hy sinh vì không có lợi ích thực sự.
EM

Để thuận tiện đơn giản, nếu bạn muốn viết "[object stringObject stringByTrimmingChar characterInset: [NSCharacterSet whitespaceCharacterSet]]" mỗi khi bạn muốn kiểm tra xem một chuỗi có trống không, tùy thuộc vào bạn.
Nhóm phát triển SEQOY

18
điều đó sẽ được phục vụ tốt hơn bởi một NSStringthể loại có thêm một phương thức gọi là trimmedStringchính xác những gì bạn đã viết.
Dave DeLong

2
Lưu ý rằng Apple whitespaceCharacterSetkhông bao gồm các dòng mới! Dưới đây là một loại tôi đã viết trong đó trimvà một số phương pháp hữu ích khác: github.com/alexch/unsuck/blob/master/unsuck/NSString%2BUnsuck.m github.com/alexch/unsuck/blob/master/unsuckTests/...
AlexChaffee

@EM Tôi không phải là fan hâm mộ của macro, nhưng tôi không hiểu mối quan tâm về an toàn loại của bạn. Trong quá trình biên dịch, macro được thay thế bằng nội dung của nó, vì vậy nếu bạn gọi macro bằng thứ gì đó khác với NSString, bạn vẫn nhận được thông báo từ trình biên dịch. Thể loại sẽ tốt hơn nhiều dù sao.
Zmaster

32

Một trong những giải pháp tốt nhất tôi từng thấy (tốt hơn so với giải pháp của Matt G) là chức năng nội tuyến được cải thiện này tôi đã chọn trên một số repo Git Hub (của Wil Shipley, nhưng tôi không thể tìm thấy liên kết):

// Check if the "thing" passed is empty
static inline BOOL isEmpty(id thing) {
    return thing == nil
    || [thing isKindOfClass:[NSNull class]]
    || ([thing respondsToSelector:@selector(length)]
        && [(NSData *)thing length] == 0)
    || ([thing respondsToSelector:@selector(count)]
        && [(NSArray *)thing count] == 0);
}

2
Đây là công việc của Wil Shipley. FYI, bạn có thể thay đổi [thing isKindOfClass: [NSNull class]] thành just (thing == [NSNull null])
Steve N

Phew .... chính xác những gì tôi đang tìm kiếm. Tôi phát điên, cố gắng tìm ra lý do tại sao chức năng "cellForRowAtIndexPath" của tôi bị hỏng do chuỗi null (và tôi không thể bắt gặp sự cố). Hàm này đã giải quyết nó một cách hoàn hảo.
Mike Gledhill

Bản sao nhận xét @Brane: Nếu bạn đang ở trong tình huống mà bạn không biết bạn đang kiểm tra loại đối tượng nào, tôi đoán điều này sẽ hiệu quả. Tuy nhiên tôi đề nghị rằng nếu bạn không biết liệu một đối tượng là NSData hay NSArray, bạn có vấn đề lớn hơn. Macro tiếp theo của bạn sẽ là gì sau cuộc gọi này condenseToSingleNSData(id thing)? expandToNSArray(id thing)? Sớm hay muộn, bạn sẽ hỏi bạn đang đối phó với loại lớp nào, tốt hơn là thực hiện nó trong tài liệu tham khảo đầu tiên.
Cœur

16

Bạn nên sử dụng loại này tốt hơn:

@implementation NSString (Empty)

    - (BOOL) isWhitespace{
        return ([[self stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]length] == 0);
    }

@end

6
Định nghĩa đó sẽ bao gồm rằng chuỗi "/ r / n / r / n" trống, khi nó rõ ràng là không - nó chứa khoảng trắng. Chức năng của bạn thực sự là: - (BOOL) là Không gian (NSString *);
JBRWilkinson

6
Một hệ quả tất yếu. Tôi thực hiện thể loại này, và có một thay đổi. Nếu bạn gọi nó trên một chuỗi số không, hàm này sẽ không bao giờ được gọi và bạn lấy lại NO (hoặc giá trị nào là NO) làm giá trị trả về. Sau đó, bạn nghĩ rằng nó không trống ... Điều này có thể hoạt động nếu tên đã được điền hoặc một cái gì đó tương tự.
Ying

Tôi đoán đúng loại sẽ là: @implementation NSString (Empty) - (BOOL) empty{ return ([[self stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]length] == 0); } @end Là sự kết hợp giữa câu trả lời của Marc và Kyle.
palme

12

Tôi đặt cái này:

@implementation NSObject (AdditionalMethod)
-(BOOL) isNotEmpty
{
    return !(self == nil
    || [self isKindOfClass:[NSNull class]]
    || ([self respondsToSelector:@selector(length)]
        && [(NSData *)self length] == 0)
    || ([self respondsToSelector:@selector(count)]
        && [(NSArray *)self count] == 0));

};
@end

Vấn đề là nếu bản thân không, chức năng này không bao giờ được gọi. Nó sẽ trả về false, đó là mong muốn.


giải pháp tốt nhất vì a) là phương thức cá thể và b) loại c) nil trường hợp trên chính nó được xử lý bởi 'isNotEmpty' Thx!
Denis

Ý tưởng tuyệt vời, quá tệ -(BOOL)isEmpty{ return ![self isNotEmpty]}sẽ không hoạt động trên danh mục.
Alston

Bản sao nhận xét @Brane: Nếu bạn đang ở trong tình huống mà bạn không biết bạn đang kiểm tra loại đối tượng nào, tôi đoán điều này sẽ hiệu quả. Tuy nhiên tôi đề nghị rằng nếu bạn không biết liệu một đối tượng là NSData hay NSArray, bạn có vấn đề lớn hơn. Macro tiếp theo của bạn sẽ là gì sau cuộc gọi này condenseToSingleNSData(id thing)? expandToNSArray(id thing)? Sớm hay muộn, bạn sẽ hỏi bạn đang đối phó với loại lớp nào, tốt hơn là thực hiện nó trong tài liệu tham khảo đầu tiên.
Cœur

11

Một tùy chọn khác là kiểm tra xem nó có bằng @""với isEqualToString:như vậy không:

if ([myString isEqualToString:@""]) {
    NSLog(@"myString IS empty!");
} else {
    NSLog(@"myString IS NOT empty, it is: %@", myString);
}

11

Chỉ cần chuyển chuỗi của bạn đến phương thức sau:

+(BOOL)isEmpty:(NSString *)str
{
    if(str.length==0 || [str isKindOfClass:[NSNull class]] || [str isEqualToString:@""]||[str  isEqualToString:NULL]||[str isEqualToString:@"(null)"]||str==nil || [str isEqualToString:@"<null>"]){
        return YES;
    }
    return NO;
}

Kiểm tra các nhận xét về stackoverflow.com/questions/21605075/ trên để biết tại sao điều này là sai. Ngoài ra làm thế nào là tốt hơn sau đó các câu trả lời khác ở đây.
Popeye

6

Chỉ cần sử dụng một trong những if else điều kiện như hình dưới đây:

Cách 1:

if ([yourString isEqualToString:@""]) {
        // yourString is empty.
    } else {
        // yourString has some text on it.
    }

Cách 2:

if ([yourString length] == 0) {
    // Empty yourString
} else {
    // yourString is not empty
}

6

Phiên bản Swift

Mặc dù đây là câu hỏi Mục tiêu C, tôi cần sử dụng NSStringtrong Swift vì vậy tôi cũng sẽ bao gồm một câu trả lời ở đây.

let myNSString: NSString = ""

if myNSString.length == 0 {
    print("String is empty.")
}

Hoặc nếu NSStringlà Tùy chọn:

var myOptionalNSString: NSString? = nil

if myOptionalNSString == nil || myOptionalNSString!.length == 0 {
    print("String is empty.")
}

// or alternatively...
if let myString = myOptionalNSString {
    if myString.length != 0 {
        print("String is not empty.")
    }
}

StringPhiên bản Swift bình thường là

let myString: String = ""

if myString.isEmpty {
    print("String is empty.")
}

Xem thêm: Kiểm tra chuỗi trống trong Swift?


5

Có thể câu trả lời này là bản sao của các câu trả lời đã được đưa ra, nhưng tôi đã thực hiện một vài sửa đổi và thay đổi theo thứ tự kiểm tra các điều kiện. Vui lòng tham khảo mã dưới đây:

+(BOOL)isStringEmpty:(NSString *)str
    {
        if(str == nil || [str isKindOfClass:[NSNull class]] || str.length==0) {
            return YES;
       }
        return NO;
    }

Đây là một danh mục, bạn có thể xem cách tạo nó ở đây: goo.gl/bRcfn7 . Tôi thích ý tưởng về một thể loại cho điều này
Daniel Gomez Rico

Không, chúng tôi không thể nói đây là thể loại. Nếu chức năng này được thực hiện theo thể loại của lớp NSString, thì đó là thể loại. Nếu không, chúng ta có thể gọi phương thức này với tên của lớp bất cứ nơi nào chúng ta thực hiện nó. Giống như Bool isEmptyStr = [MyClassName isStringEmpty: str] Tuy nhiên, sẽ tốt hơn nếu chúng ta sẽ khai báo nó theo thể loại. Bởi vì bằng cách nào đó chúng ta cũng cần tận dụng lợi thế của danh mục.
iDevAmit

4

Bạn có thể kiểm tra xem chuỗi của bạn có trống hay không bằng cách sử dụng phương thức này:

+(BOOL) isEmptyString : (NSString *)string
{
    if([string length] == 0 || [string isKindOfClass:[NSNull class]] || 
       [string isEqualToString:@""]||[string  isEqualToString:NULL]  ||
       string == nil)
     {
        return YES;         //IF String Is An Empty String
     }
    return NO;
}

Cách thực hành tốt nhất là tạo một lớp chia sẻ nói UtilityClass và quảng cáo phương thức này để bạn có thể sử dụng phương thức này bằng cách gọi nó thông qua ứng dụng của bạn.


4

Bạn có 2 phương pháp để kiểm tra xem chuỗi có trống hay không:

Hãy giả sử tên chuỗi của bạn là NSString *strIsEmpty.

Cách 1:

if(strIsEmpty.length==0)
{
    //String is empty
}

else
{
    //String is not empty
}

Cách 2:

if([strIsEmpty isEqualToString:@""])
{
    //String is empty
}

else
{
    //String is not empty
}

Chọn bất kỳ phương thức nào ở trên và nhận biết chuỗi có trống hay không.


3

Chỉ cần kiểm tra độ dài chuỗi của bạn

 if (!yourString.length)
 {
   //your code  
 }

một tin nhắn tới NIL sẽ trả về nil hoặc 0, vì vậy không cần phải kiểm tra cho nil :).

Chúc mừng mã hóa ...


Tôi đã sử dụng điều này rất nhiều lần. Hoàn toàn không cần mở rộng, danh mục và những gì không.
pnizzle

2

Nó làm việc như một cơ duyên đối với tôi

Nếu NSStrings

if ([s isKindOfClass:[NSNull class]] || s == nil || [s isEqualToString:@""]) {

    NSLog(@"s is empty");

} else {

    NSLog(@"s containing %@", s);

}

2

Vì vậy, ngoài khái niệm cơ bản về kiểm tra độ dài chuỗi nhỏ hơn 1, điều quan trọng là phải xem xét bối cảnh sâu sắc. Ngôn ngữ của con người hoặc máy tính hoặc nói cách khác có thể có các định nghĩa khác nhau về các chuỗi trống và trong cùng các ngôn ngữ đó, ngữ cảnh bổ sung có thể thay đổi thêm ý nghĩa.

Giả sử chuỗi rỗng có nghĩa là "một chuỗi không chứa bất kỳ ký tự nào có ý nghĩa trong ngữ cảnh hiện tại".

Điều này có thể có nghĩa trực quan, vì màu sắc và màu nền giống nhau trong một chuỗi được quy. Hiệu quả trống rỗng.

Điều này có thể có nghĩa là trống rỗng của các nhân vật có ý nghĩa. Tất cả các dấu chấm hoặc tất cả dấu gạch ngang hoặc tất cả dấu gạch dưới có thể được coi là trống. Hơn nữa, trống các ký tự có ý nghĩa có thể có nghĩa là một chuỗi không có ký tự mà người đọc hiểu. Chúng có thể là các ký tự trong một ngôn ngữ hoặc ký tự được định nghĩa là vô nghĩa đối với người đọc. Chúng ta có thể định nghĩa nó một chút khác nhau để nói chuỗi hình thành không có từ đã biết trong một ngôn ngữ nhất định.

Chúng ta có thể nói trống là một hàm của tỷ lệ phần trăm không gian âm trong glyphs được hiển thị.

Ngay cả một chuỗi các ký tự không in được mà không có biểu diễn trực quan chung cũng không thực sự trống rỗng. Nhân vật điều khiển đến với tâm trí. Đặc biệt là phạm vi ASCII thấp (tôi ngạc nhiên không ai đề cập đến chúng vì chúng có rất nhiều hệ thống và không có khoảng trắng vì chúng thường không có glyphs và không có số liệu trực quan). Tuy nhiên, độ dài chuỗi không bằng không.

Phần kết luận. Chiều dài một mình không phải là biện pháp duy nhất ở đây. Thành viên thiết lập bối cảnh cũng khá quan trọng.

Tư cách thành viên là một biện pháp bổ sung phổ biến rất quan trọng. Trình tự có ý nghĩa cũng là một thứ khá phổ biến. (nghĩ rằng SETI hoặc tiền điện tử hoặc captcha) Cũng tồn tại thêm các bộ bối cảnh trừu tượng.

Vì vậy, hãy suy nghĩ cẩn thận trước khi giả sử một chuỗi chỉ trống dựa trên chiều dài hoặc khoảng trắng.


2

Bài đăng rất hữu ích, để thêm hỗ trợ NSDipedia cũng như một thay đổi nhỏ

static inline BOOL isEmpty(id thing) {
    return thing == nil
    || [thing isKindOfClass:[NSNull class]]
    || ([thing respondsToSelector:@selector(length)]
        && ![thing respondsToSelector:@selector(count)]
        && [(NSData *)thing length] == 0)
    || ([thing respondsToSelector:@selector(count)]
        && [thing count] == 0);
}

Bản sao nhận xét @Brane: Nếu bạn đang ở trong tình huống mà bạn không biết bạn đang kiểm tra loại đối tượng nào, tôi đoán điều này sẽ hiệu quả. Tuy nhiên tôi đề nghị rằng nếu bạn không biết liệu một đối tượng là NSData hay NSDipedia, bạn có vấn đề lớn hơn. Macro tiếp theo của bạn sẽ là gì sau cuộc gọi này condenseToSingleNSData(id thing)? expandToNSArray(id thing)? Sớm hay muộn, bạn sẽ hỏi bạn đang đối phó với loại lớp nào, tốt hơn là thực hiện nó trong tài liệu tham khảo đầu tiên.
Cœur

2
- (BOOL)isEmpty:(NSString *)string{
    if ((NSNull *) string == [NSNull null]) {
        return YES;
    }
    if (string == nil) {
        return YES;
    }
    if ([string length] == 0) {
        return YES;
    }
    if ([[string stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceAndNewlineCharacterSet]] length] == 0) {
        return YES;
    }
    if([[string stringByStrippingWhitespace] isEqualToString:@""]){
        return YES;
    }
    return NO;
}

1
Ba điều kiện đầu tiên là không cần thiết và bạn chưa bao gồm nguồn chostringByStrippingWhitespace
mattsven

2

Cách tốt nhất là sử dụng danh mục.
Bạn có thể kiểm tra các chức năng sau. Mà có tất cả các điều kiện để kiểm tra.

-(BOOL)isNullString:(NSString *)aStr{
        if([(NSNull *)aStr isKindOfClass:[NSNull class]]){
            return YES;
        }
        if ((NSNull *)aStr  == [NSNull null]) {
            return YES;
        }
        if ([aStr isKindOfClass:[NSNull class]]){
            return YES;
        }
        if(![[aStr stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] length]){
            return YES;
        }
        return NO;
    }

1

Cách tốt nhất trong mọi trường hợp là kiểm tra độ dài của chuỗi đã cho. Đối với điều này nếu chuỗi của bạn là myString thì mã là:

    int len = [myString length];
    if(len == 0){
       NSLog(@"String is empty");
    }
    else{
      NSLog(@"String is : %@", myString);
    }


1

kiểm tra điều này :

if ([yourString isEqualToString:@""])
{
    NsLog(@"Blank String");
}

Hoặc là

if ([yourString length] == 0)
{
    NsLog(@"Blank String");
}

Hy vọng điều này sẽ giúp.


1

Bạn có thể dễ dàng kiểm tra xem chuỗi có trống không với điều này:

if ([yourstring isEqualToString:@""]) {
    // execute your action here if string is empty
}

1

Tôi đã kiểm tra một chuỗi trống bằng cách sử dụng mã dưới đây:

//Check if we have any search terms in the search dictionary.
if( (strMyString.text==(id) [NSNull null] || [strMyString.text length]==0 
       || strMyString.text isEqual:@"")) {

   [AlertView showAlert:@"Please enter a valid string"];  
}

1

Nó đơn giản như if([myString isEqual:@""])hoặcif([myString isEqualToString:@""])


1
//Different validations:
 NSString * inputStr = @"Hey ";

//Check length
[inputStr length]

//Coming from server, check if its NSNull
[inputStr isEqual:[NSNull null]] ? nil : inputStr

//For validation in allowed character set
-(BOOL)validateString:(NSString*)inputStr
{
    BOOL isValid = NO;
    if(!([inputStr length]>0))
    {
        return isValid;

    }

    NSMutableCharacterSet *allowedSet = [NSMutableCharacterSet characterSetWithCharactersInString:@".-"];
    [allowedSet formUnionWithCharacterSet:[NSCharacterSet decimalDigitCharacterSet]];
    if ([inputStr rangeOfCharacterFromSet:[allowedSet invertedSet]].location == NSNotFound)
    {
        // contains only decimal set and '-' and '.'

    }
    else
    {
        // invalid
        isValid = NO;

    }
    return isValid;
}

0

Bạn có thể có một chuỗi rỗng theo hai cách:

1) @ "" // Không chứa không gian

2) @ "" // Chứa không gian

Về mặt kỹ thuật cả hai chuỗi đều trống. Chúng ta có thể viết cả hai điều chỉ bằng cách sử dụng MỘT Điều kiện

if ([firstNameTF.text stringByReplacingOccurrencesOfString:@" " withString:@""].length==0)
{
    NSLog(@"Empty String");
}
else
{
    NSLog(@"String contains some value");
}

0

Hãy thử như sau

NSString *stringToCheck = @"";

if ([stringToCheck isEqualToString:@""])
{
   NSLog(@"String Empty");
}
else
{
   NSLog(@"String Not Empty");
}

-1
if(str.length == 0 || [str isKindOfClass: [NSNull class]]){
    NSLog(@"String is empty");
}
else{
    NSLog(@"String is not empty");
}    

1
Kiểm tra null phải là đầu tiên. str.lengthsẽ ném một ngoại lệ nếu strlà null.
Jeffery Thomas

-2
if( [txtMobile.text length] == 0 )
{
    [Utility showAlertWithTitleAndMessage: AMLocalizedString(@"Invalid Mobile No",nil) message: AMLocalizedString(@"Enter valid Mobile Number",nil)];
}
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.