Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone nsstring和nsinteger转换_Iphone_Objective C - Fatal编程技术网

Iphone nsstring和nsinteger转换

Iphone nsstring和nsinteger转换,iphone,objective-c,Iphone,Objective C,我有两个数组,第一个数组包含数字,第二个数组使用这些数字作为索引 NSArray *dayOfWeek = [NSArray arrayWithObjects:@"D",@"L",@"M", @"X",@"J",@"V",@"S", nil]; NSArray *arrayDays = [days componentsSeparatedByString:@" "]; //arrayDays 2 3 4 5 6 NSString *daysPrint;

我有两个数组,第一个数组包含数字,第二个数组使用这些数字作为索引

NSArray *dayOfWeek = [NSArray arrayWithObjects:@"D",@"L",@"M", @"X",@"J",@"V",@"S", nil];

NSArray *arrayDays = [days componentsSeparatedByString:@" "];     

 //arrayDays  2 3 4 5 6 

     NSString *daysPrint;

     for (NSString *theDay in arrayDays) {
         NSLog(@"string %@",theDay);
         NSInteger dayIndex = (NSInteger)theDay;
         NSLog(@"integer %d", dayIndex);
         daysPrint = [NSString stringWithFormat:@"%@ %@", daysPrint, [dayOfWeek objectAtIndex:dayIndex]];

     }
在日志中:

2012-07-02 12:49:27.322 usualBike[1698:f803] string 2
2012-07-02 12:49:27.323 usualBike[1698:f803] integer 109471840
很明显,当我试图获得dayOfWeek[109461840]时,它崩溃了

我怎样才能解决这个问题

先谢谢你

for (NSString *theDay in arrayDays) {
     NSLog(@"string %@",theDay);
     int dayIndex = [theDay intValue];
     NSLog(@"integer %d", dayIndex);
     daysPrint = [NSString stringWithFormat:@"%@ %@", daysPrint, [dayOfWeek objectAtIndex:dayIndex]];

 }

这可能会帮助您……

您可以使用NSString实例方法,如[theDay intValue]进行整数转换。不需要投你自己


希望这能有所帮助。

daysPrint将为空。你需要将其赋值为空值,这是崩溃的原因

NSArray *dayOfWeek = [NSArray arrayWithObjects:@"D",@"L",@"M", @"X",@"J",@"V",@"S", nil];

NSArray *arrayDays = [days componentsSeparatedByString:@" "];     

//arrayDays  2 3 4 5 6 

NSString *daysPrint=@"";

for (NSString *theDay in arrayDays) {
    NSLog(@"string %@",theDay);
    NSInteger dayIndex = [theDay intValue];
    NSLog(@"integer %d", dayIndex);
    daysPrint = [NSString stringWithFormat:@"%@ %@", daysPrint, [dayOfWeek objectAtIndex:dayIndex]];

}
使用

相反,请使用此

 for (NSString *theDay in arrayDays) {
    NSLog(@"string %@",theDay);
    NSInteger dayIndex = [theDay intValue];     // change this code
    NSLog(@"integer %d", dayIndex);
    daysPrint = [NSString stringWithFormat:@"%@ %@", daysPrint, [dayOfWeek objectAtIndex:dayIndex]];

}

NSArray*arrayDays=[days componentsSeparatedByString:@”“]在这个“days”中是一个字符串?使用NSLog打印“days”。要获取“dayIndex”,请使用[Day intValue]。字符串daysPrint将显示为null,并且dayOfWeek没有用于索引dayIndex的元素。如何获取“days”字符串。请添加一些代码。
 for (NSString *theDay in arrayDays) {
    NSLog(@"string %@",theDay);
    NSInteger dayIndex = [theDay intValue];     // change this code
    NSLog(@"integer %d", dayIndex);
    daysPrint = [NSString stringWithFormat:@"%@ %@", daysPrint, [dayOfWeek objectAtIndex:dayIndex]];

}