在jceinputStream.m里的, 各种断言,建议改成抛错处理,至少程序不会崩溃
- (NSNumber *)readNumber:(int)tag required:(BOOL)required
{
[self peakHead];
if (_headTag != tag)
{
assert(required == NO);
return nil;
}
else
{
[self readHead];
switch (_headType)
{
case TARS_TYPE_ZERO:
return [NSNumber numberWithChar:0];
case TARS_TYPE_INT1:
return [NSNumber numberWithChar:[self readInt1]];
case TARS_TYPE_INT2:
return [NSNumber numberWithShort:[self readInt2]];
case TARS_TYPE_INT4:
return [NSNumber numberWithInt:[self readInt4]];
case TARS_TYPE_INT8:
return [NSNumber numberWithLongLong:[self readInt8]];
case TARS_TYPE_FLOAT:
return [NSNumber numberWithFloat:[self readFloat]];
case TARS_TYPE_DOUBLE:
return [NSNumber numberWithDouble:[self readDouble]];
default:
assert(0);
break;
}
}
}
在jceinputStream.m里的, 各种断言,建议改成抛错处理,至少程序不会崩溃
{
[self peakHead];
if (_headTag != tag)
{
assert(required == NO);
return nil;
}
else
{
[self readHead];
switch (_headType)
{
case TARS_TYPE_ZERO:
return [NSNumber numberWithChar:0];
case TARS_TYPE_INT1:
return [NSNumber numberWithChar:[self readInt1]];
case TARS_TYPE_INT2:
return [NSNumber numberWithShort:[self readInt2]];
case TARS_TYPE_INT4:
return [NSNumber numberWithInt:[self readInt4]];
case TARS_TYPE_INT8:
return [NSNumber numberWithLongLong:[self readInt8]];
case TARS_TYPE_FLOAT:
return [NSNumber numberWithFloat:[self readFloat]];
case TARS_TYPE_DOUBLE:
return [NSNumber numberWithDouble:[self readDouble]];
default:
assert(0);
break;
}
}
}