Explicación de NSString en Objective-C

NSString es una clase básica encapsulada en el marco Fundationg en Object-C que se especializa en el procesamiento de datos de cadenas.Es una clase básica muy importante y de uso frecuente.

Cómo crear NSString:

    NSString *firstString = @"Justin";  //第一种方式
    NSString *secondString = [NSString new]; //第二种方式
    NSString *thirdString = [NSString string];  //第三种方式
    NSString *forthString = [[NSString alloc] init];//第四种方式

Constancia NSString:

El objeto de cadena creado en el primer método anterior se almacenará en el área de datos de la memoria . Las variables y constantes almacenadas en esta área solo serán liberadas por la memoria una vez finalizado el programa. Los objetos de cadena creados en los métodos segundo a cuarto anteriores se crearán en el montón de memoria.

No importa cómo se cree, modifíquelo nuevamente:

    NSString *firstString = @"Justin";  
    firstString = @"凡人皆有一死,凡人皆需侍奉。"

La cadena original @"Justin" en el espacio de memoria no será reemplazada por un nuevo valor de cadena, sino por una cadena correspondiente @"Todos somos mortales y todos los mortales necesitan servir". Se crea una nueva cadena correspondiente en el espacio de memoria para almacenar el nuevo valor de cadena Cadena, deje que firstString apunte a la dirección de memoria recién creada.

Principio del mecanismo operativo del sistema: cada vez que se crea un objeto NSString, buscará una cadena con el mismo contenido en el área de memoria actual. Si la misma cadena existe en el área de memoria, no se creará ningún nuevo espacio de memoria. apunte el puntero a la dirección de memoria de la misma cadena. Si el sistema no encuentra el mismo contenido de cadena, creará una nueva. Además, si se crea una cadena recientemente en el área de datos, el sistema no verificará si existe la misma cadena en el montón, y el área de datos y el área del montón no buscarán entre áreas.

Comparación de objetos NSString:

    NSString *firstString = @"Justin";
    NSString *secondString = @"Justin";
    NSString *thirdString = [NSString stringWithFormat:@"Justin"];
    
    if (firstString == secondString) {
        NSLog(@"YES");
    }
    
    if (firstString != thirdString) {
        NSLog(@"NO");
    }

El código anterior muestra que hay un problema al usar solo punteros para determinar si dos cadenas son iguales, porque como se mencionó anteriormente, diferentes métodos de creación de objetos NSString tendrán dos espacios de memoria: el área de datos y el montón. Por lo tanto, una vez que los dos espacios están involucrados. Para comparar el contenido de los objetos NSString, simplemente usar "==" es arriesgado. Se debe utilizar lo siguiente:

     if([firstString isEqualToString:thirdString]){
         NSLog(@"YES");
     }

Método de empalme del objeto NSString:

    NSString *firstString = @"Justin";
    NSString *secondString = @"Justin";
    NSString *thirdString = [NSString stringWithFormat:@"%@%@",firstString,secondString];

Cómo obtener la longitud del objeto NSString:

    NSString *firstString = @"Justin";
    NSUInteger length = firstString.length;

Conversión de objeto NSString y tipo Char de lenguaje C:

    //NSString->char

    NSString *firstString = @"Justin";
    char * myChar = firstString.UTF8String;

    //chart->NSString

    NSString *secondString = [NSString stringWithUTF8String:myChar];

NSString lee el contenido de la dirección de red

    //Get text from URL
    NSURL *url = [NSURL URLWithString:@"http://www.baidu.com"];
    NSString *str1 = [NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding         error:nil];

NSString escribe en un archivo local

    NSString *text = @"Justin!";
    NSString *locoalPath = @"/Users/Justin/Desktop/abc.txt";
    NSError *error;
    BOOL resoult= [text writeToFile:locoalPath atomically:NO encoding:NSUTF8StringEncoding error:&error];
    
    if (error){
        NSLog(@"%@",error.localizedFailureReason);
    }else{
        NSLog(@"%d",resoult);
    }

NSString lee el archivo local

    NSString *locoalPath = @"/Users/Justin/Desktop/abc.txt";
    NSError *error;
    
    NSString *text =[NSString stringWithContentsOfFile:locoalPath encoding:NSUTF8StringEncoding error:&error];

Comparación de objetos NSString (tamaño, longitud...)

El tipo de retorno es un tipo de enumeración: puede verificarlo específicamente cuando lo use.

opciones: también es un tipo de enumeración. Especifica las condiciones bajo las cuales se comparan dos cadenas. Se puede definir de acuerdo con los requisitos cuando se usa.

    NSString *firstString = @"Justin";
    NSString *thirdString = @"swear you can";

    //NSComparisonResult:ENUM type
    //NSNumericSearch:ENUM type
    NSComparisonResult result = [firstString compare:thirdString options:NSNumericSearch];

NSString determina si comienza o termina con una cadena:

    NSString *thirdString = @"swear you can";
    //判断是否以swear开头
    BOOL start = [firstString hasPrefix:@"swear"];
    //判断是否以can结尾
    BOOL end = [firstString hasPrefix:@"can"];

NSString determina si contiene una determinada cadena y la longitud de una determinada cadena:

    NSString *thirdString = @"swear you can";
    NSRange rang = [thirdString rangeOfString:@"you"];
    NSLog(@"length=%lu,location=%lu",(unsigned long)rang.length,(unsigned long)rang.location);

NSNotFound se devuelve cuando no se encuentra.

NSString convierte letras a mayúsculas:

string = [string uppercaseString];

NSString tiene muchos otros métodos de uso y funciones. Durante el uso, todos pueden encontrar más funciones proporcionadas por el sistema según la experiencia para satisfacer diferentes necesidades.

Supongo que te gusta

Origin blog.csdn.net/JustinZYP/article/details/124187298
Recomendado
Clasificación