我正在尝试将字符串解压缩为数组,这是我的代码:
编辑:我发现了更多信息。
startTimeArray = [[NSMutableArray alloc] init];
NSString *tmpStartTimeString = [[tempItems objectAtIndex:0] valueForKey:@"temp_start_time"];
startTimeArray = (NSMutableArray *)[tmpStartTimeString componentsSeparatedByCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"|"]];
[test3 setText:[NSString stringWithFormat:@"%i", [startTimeArray count]]];
'EXC_BAD_ACCESS'是骗人的,这不是问题所在。上面的代码将以下详细信息输出到控制台:
UILable Test3包含一个2,数组的输出如下: 开始时间:2010-09-30 16:19:39 开始时间:2010-09-30 16:19:43
此时我的数组有值,所以我尝试执行以下操作:
startDateTime = [NSDate date];
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSString *strStartDateTime = [formatter stringFromDate:startDateTime];
[formatter release];
[startTimeArray addObject:strStartDateTime];
,这会导致以下错误:
- [__ NSCFType addObject:]:无法识别的选择器发送到实例0x193370
我可以从Debugger看到strStartDateTime有一个有效值。
有什么想法吗?
此致 斯蒂芬
答案 0 :(得分:1)
看起来你没有保留返回的数组。试试这个:
NSString *tmpStartTimeString = [[tempItems objectAtIndex:0] valueForKey:@"temp_start_time"];
startTimeArray = [[tmpStartTimeString componentsSeparatedByCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"|"]] retain];
[test3 setText:[NSString stringWithFormat:@"%i", [startTimeArray count]]];
PS如果你肯定需要它是一个可变阵列,试试这个:
NSString *tmpStartTimeString = [[tempItems objectAtIndex:0] valueForKey:@"temp_start_time"];
NSArray *tempArray = [tmpStartTimeString componentsSeparatedByCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"|"]];
startTimeArray = [[NSMutableArray arrayWithArray:tempArray] retain];
[test3 setText:[NSString stringWithFormat:@"%i", [startTimeArray count]]];