在NSString上获取EXC_BAD_ACCESS。日志说无效的CFStringRef

时间:2012-05-28 05:18:18

标签: iphone objective-c xcode

我正在尝试从我设置的服务器访问数据。 虽然4个文件完美地工作,但我收到了一个Thread2:程序收到的信号:“EXC_BAD_ACCESS”。

-(void)loadContentInBackground
{

        NSError *error;

        NSString *posterURL = [[NSString alloc] initWithFormat:@"%@PartyCentral/WeeklyParties/Club%@/poster.jpg",baseURL,clubNum];

        poster.image = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:posterURL]]];

        posterEnlarged.image = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:posterURL]]];

        NSString *vp1URL = [[NSString alloc] initWithFormat:@"%@PartyCentral/WeeklyParties/Club%@/VenuePic/pic1.jpg",baseURL,clubNum];
        venuePic1.image = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:vp1URL]]];

        NSString *vp2URL = [[NSString alloc] initWithFormat:@"%@PartyCentral/WeeklyParties/Club%@/VenuePic/pic2.jpg",baseURL,clubNum];
        venuePic2.image = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:vp2URL]]];

        NSString *vp3URL = [[NSString alloc] initWithFormat:@"%@PartyCentral/WeeklyParties/Club%@/VenuePic/pic3.jpg",baseURL,clubNum];
        venuePic3.image = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:vp3URL]]];


        NSString *nameURL = [[NSString alloc] initWithFormat:@"%@PartyCentral/WeeklyParties/Club%@/name.txt",baseURL,clubNum];
        NSString *nameData = [NSString stringWithContentsOfURL:[NSURL URLWithString:nameURL] encoding:NSASCIIStringEncoding error:&error];
        name.text = nameData;

        // Date Being downloaded.
        NSString *dateURL = [[NSString alloc] initWithFormat:@"%@PartyCentral/WeeklyParties/Club%@/date.txt",baseURL,clubNum];
        NSString *dateData = [NSString stringWithContentsOfURL:[NSURL URLWithString:dateURL] encoding:NSASCIIStringEncoding error:&error];
        date.text = dateData;

        // Day Being downloaded. THIS IS WHERE THE ERROR COMES IN HIGHLIGHTING THE
       //initWithFormat line


        NSString *dayURL = [[NSString alloc] initWithFormat:@"%@PartyCentral/WeeklyParties/Club%@/day.txt",baseURL,clubNum];
        NSString *dayData = [NSString stringWithContentsOfURL:[NSURL URLWithString:dayURL] encoding:NSASCIIStringEncoding error:&error];
        day.text = dayData;

        // Latitude & Longitude Being downloaded. 
        NSString *latitudeURL = [[NSString alloc] initWithFormat:@"%@PartyCentral/WeeklyParties/Club%@/Location/latitude.txt"];
        NSString *latitudeData = [NSString stringWithContentsOfURL:[NSURL URLWithString:latitudeURL] encoding:NSASCIIStringEncoding error:&error];

        NSString *longitudeURL = [[NSString alloc] initWithFormat:@"%dPartyCentral/WeeklyParties/Club%@/Location/longitude.txt",baseURL,clubNum];
        NSString *longitudeData = [NSString stringWithContentsOfURL:[NSURL URLWithString:longitudeURL] encoding:NSASCIIStringEncoding error:&error];

        CLLocationCoordinate2D location;
        location.latitude = [latitudeData doubleValue];
        location.longitude = [longitudeData doubleValue];

        MapAnnotation *newAnnotation = [[MapAnnotation alloc] initWithTitle:[name text] andCoordinate:location];
        [self.mapView addAnnotation:newAnnotation];
        [newAnnotation release];

    }

在我获得的dayURL旁边的日志中,无效的CFStringRef。

请帮助......!

1 个答案:

答案 0 :(得分:2)

这一行:

NSString *latitudeURL = [[NSString alloc] initWithFormat:@"%@PartyCentral/WeeklyParties/Club%@/Location/latitude.txt"];

包含一个没有提供参数的格式化字符串,这将取消引用堆栈中的任何值。如果那些指针不是有效内存,则会发生此类错误。