Tôi biết ơn vì bài báo Convert NSData bytes to NSString?, đặc biệt là cho @ christo16. Trước đây tôi đã phụ thuộc vào ASIHttpRequest chỉ để lấy giá trị từ máy chủ PHP. Bây giờ chỉ sử dụng dòng mã này:Tại sao dữ liệu NSDataWithContentsOfURL đôi khi trả về giá trị NULL?
NSString *pageContents = [NSData dataWithContentsOfURL: [NSURL URLWithString:@"http://www.apple.com"]]
Tôi có thể có được chức năng mình muốn.
Nhưng tại sao đôi khi nguyên nhân dòng trangContent là NULL. Tôi đã thay đổi dòng này thành:
NSString *fullUrl = [NSString stringWithFormat:@"http://www.apple.com"];
NSURL *url = [[NSURL alloc] initWithString:fullUrl];
NSData *pageContents;
NSString *response = NULL;
while(response==NULL)
{
pageContents = [NSData dataWithContentsOfURL: [NSURL URLWithString:fullUrl]];
response = [NSString stringWithUTF8String:[pageContents bytes]];
NSLog(@"content = %@", response);
}
Có cách nào tốt hơn để làm việc này không? Cho đến bây giờ, tôi không có vấn đề gì. Tôi chỉ tự hỏi liệu có một cách thanh lịch hơn để đạt được kết quả tương tự
Cảm ơn
Nhược điểm của một lớp lót đó là nó chặn giao diện người dùng của bạn, có thể trong một thời gian dài. Vòng lặp thậm chí còn tồi tệ hơn: nếu máy chủ không phản hồi các kết nối, thì nó sẽ chặn giao diện người dùng hiệu quả mãi mãi (cho đến khi SpringBoard bị chán và giết chết quá trình của bạn). –