Dividir um NSString para acessar uma determinada peça

Eu tenho uma string como esta: @"10/04/2011" e eu quero salvar apenas o “10” em outra seqüência. Como eu posso fazer isso?

 NSArray* foo = [@"10/04/2011" componentsSeparatedByString: @"/"]; NSString* firstBit = [foo objectAtIndex: 0]; 

Atualização 7/3/2018:

Agora que a questão adquiriu uma tag Swift, devo adicionar a maneira Swift de fazer isso. É bem simples:

 let substrings = "10/04/2011".split(separator: "/") let firstBit = substrings[0] 

Embora note que ele fornece uma matriz de Substring . Se você precisar convertê-los de volta para cadeias comuns, use o map

 let strings = "10/04/2011".split(separator: "/").map{ String($0) } let firstBit = strings[0] 

ou

 let firstBit = String(substrings[0]) 

Qualquer um desses dois:

 NSString *subString = [dateString subStringWithRange:NSMakeRange(0,2)]; NSString *subString = [[dateString componentsSeparatedByString:@"/"] objectAtIndex:0]; 

Embora tenha em mente que, às vezes, uma string de data não é formatada corretamente e um dia (ou um mês) é mostrado como 8, em vez de 08, portanto, a primeira pode ser a pior das duas soluções.

O último deve ser colocado em uma matriz separada para que você possa realmente verificar a duração da coisa retornada, para que você não obtenha exceções lançadas no caso de uma cadeia de data corrompida ou inválida de qualquer fonte que você tenha.

Está funcionando bem

 NSString *dateString = @"10/10/2010";//Date NSArray* dateArray = [dateString componentsSeparatedByString: @"/"]; NSString* dayString = [dateArray objectAtIndex: 0]; 

Objetivo-c:

  NSString *day = [@"10/04/2011" componentsSeparatedByString:@"/"][0]; 

Rápido:

  var day: String = "10/04/2011".componentsSeparatedByString("/")[0] 

Use [myString componentsSeparatedByString:@"/"]

Eu tenho formatado a solução legal fornecida por JeremyP acima em uma function reutilizável mais genérica abaixo:

 ///Return an ARRAY containing the exploded chunk of strings +(NSArray*)explodeString:(NSString*)stringToBeExploded WithDelimiter:(NSString*)delimiter { return [stringToBeExploded componentsSeparatedByString: delimiter]; } 

Versão Swift 3.0

 let arr = yourString.components(separatedBy: "/") let month = arr[0]