Ios objectAtIndex正在提供一个ascii值
我是iOS新手,下面的代码给了我一个ascii值:Ios objectAtIndex正在提供一个ascii值,ios,objective-c,Ios,Objective C,我是iOS新手,下面的代码给了我一个ascii值: NSArray *arry = [NSArray arrayWithObjects:@'a',@'b',@'c', nil]; NSString *x = [arry objectAtIndex:0]; NSLog(@"%@", x); 产出:97 但我需要它来打印:a,不是ascii,以下是我尝试的: NSString *string = [NSString stringWithFormat:@"%c", x]; 但这不起作用,问题
NSArray *arry = [NSArray arrayWithObjects:@'a',@'b',@'c', nil];
NSString *x = [arry objectAtIndex:0];
NSLog(@"%@", x);
产出:97
但我需要它来打印:a,不是ascii,以下是我尝试的:
NSString *string = [NSString stringWithFormat:@"%c", x];
但这不起作用,问题是简单的引号映射到一个字符而不是一个字符串。这应该起作用:
NSArray *arry = [NSArray arrayWithObjects:@"a",@"b",@"c", nil];
问题是简单的引号映射到一个char而不是NSString。这应该起作用:
NSArray *arry = [NSArray arrayWithObjects:@"a",@"b",@"c", nil];
Objective-C中的字符串文字必须用双引号括起来
NSArray *array = [NSArray arrayWithObjects:@"a", @"b", @"c", nil];
NSString *x = [array objectAtIndex:0];
NSLog(@"%@", x);
Objective-C中的字符串文字必须用双引号括起来
NSArray *array = [NSArray arrayWithObjects:@"a", @"b", @"c", nil];
NSString *x = [array objectAtIndex:0];
NSLog(@"%@", x);
一个非常好的把戏:)
正在发生的事情是,cchar
类型是用'
编写的,它们基本上是ASCII值。另一方面,ObjC有一个名为的东西,其中一个允许从一个数字转换为一个NSNumber
类型
这里发生的事情是,您的字符被转换成ASCII等价物(实际上是一个整数,只是一个单字节整数-char
),然后转换成NSNumber
s97
。所以:'a'->ASCII 97->包装在NSNumber中
您希望数组包含字符串,以便执行以下操作:
NSArray*arry=[NSArray数组,其对象为:@“a”、“b”、“c”、“nil]代码>
NSArray
只能包含对象(而NSNumber
是一个对象),这就是为什么必须使用NSString
s。如果要在数组中使用字符,就必须使用c样式的数组。一个非常好的技巧:)
正在发生的事情是,cchar
类型是用'
编写的,它们基本上是ASCII值。另一方面,ObjC有一个名为的东西,其中一个允许从一个数字转换为一个NSNumber
类型
这里发生的事情是,您的字符被转换成ASCII等价物(实际上是一个整数,只是一个单字节整数-char
),然后转换成NSNumber
s97
。所以:'a'->ASCII 97->包装在NSNumber中
您希望数组包含字符串,以便执行以下操作:
NSArray*arry=[NSArray数组,其对象为:@“a”、“b”、“c”、“nil]代码>
NSArray
只能包含对象(而NSNumber
是一个对象),这就是为什么必须使用NSString
s。如果要在数组中使用字符,则必须使用c样式的数组。使用[NSArray arrayWithObjects:@“a”、“b”、“c”、“nil];使用[NSArray arrayWithObjects:@“a”、“b”、“c”、“nil];回答得好。有关转换为NSNumber的信息对于解释OP看到的结果至关重要。回答得好。有关转换为NSNumber的信息对于解释OP看到的结果至关重要。