nsdata dataWithBytes导致iOS7崩溃

时间:2013-11-22 11:22:39

标签: ios ios7 char nsdate

仅在iOS7上崩溃

+(PageSection *)initwithPageSection:_anchor withHeader:_subHeader withDetails:_text withPhoneNumberIfValid:(id)_phoneNo
{
    const char *tempAnchor = [_anchor cStringUsingEncoding:[NSString defaultCStringEncoding]];
    const char *tempSubHeader = [_subHeader cStringUsingEncoding:[NSString defaultCStringEncoding]];
    const char *tempText = [_text cStringUsingEncoding:[NSString defaultCStringEncoding]];
    const char *tempPhoneNo = [_phoneNo cStringUsingEncoding:[NSString defaultCStringEncoding]];

    NSData *anchorData = [NSData dataWithBytes:tempAnchor length:[_anchor length]];
    NSData *subHeaderData = [NSData dataWithBytes:tempSubHeader length:[_subHeader length]];
    NSData *textData = [NSData dataWithBytes:tempText length:[_text length]];
    NSData *phoneData = [NSData dataWithBytes:tempPhoneNo length:[(NSString *)_phoneNo length]];



    PageSection *p =[[PageSection alloc]init];
    p.anchorTag=[[NSString alloc] initWithData:anchorData encoding:NSUTF8StringEncoding];
    p.subHeader=[[NSString alloc] initWithData:subHeaderData encoding:NSUTF8StringEncoding];
    p.text=[[NSString alloc] initWithData:textData encoding:NSUTF8StringEncoding];
    p.phoneNo=[[NSString alloc] initWithData:phoneData encoding:NSUTF8StringEncoding];
    return p;
}

这条线路崩溃了:NSData *textData = [NSData dataWithBytes:tempText length:[_text length]];

任何想法??

2 个答案:

答案 0 :(得分:1)

实际上它返回NULL但仅适用于iOS7 const char *tempText = [_text cStringUsingEncoding:[NSString defaultCStringEncoding]]; NSLog(@"tex: %s", tempText);

这就是它崩溃的原因

答案 1 :(得分:0)

您正在尝试访问已发布的对象。

转到您的产品>编辑方案> Diagonistic标签>启用僵尸对象。它将告诉您在释放内存后正在访问哪个对象。