Приложение представляет собой приложение галереи, которое создает изображение в папке «Документы» в файловой системе устройства iOS.Он хранит данные изображений в базе данных sqlite.
Я пытаюсь разместить приложение iPad на устройстве, но каждый раз во время процесса сборки приложение просто говорит "приостановлено" на панели "По теме"в Xcode 4 он перестает создавать приложение.
Однако, когда я собираю приложение для симулятора iPad, все прошло нормально.Я вижу окончательное приложение на симуляторе, и оно не вылетает.
Мое приложение считывает список URL-адресов из текстового файла, создает изображение из URL-адреса, а также миниатюрное представление этого изображения и сохраняетих в папку «Документы».Затем он сохраняет URL-адрес полноразмерного изображения в базе данных sqlite3.
Я прочитал и попытался отключить сжатие PNG, например, как это сделал этот парень:
iOS - Build FreezesКогда я выполняю сборку на устройстве, но не в симуляторе
, но это не помогло, он все равно останавливается во время сборки.
Я проверил свой текстовый файл и строку егоОстановка чтения имеет ту же структуру, что и другие строки.
Кто-нибудь сталкивался с этой проблемой?
Обновление
Запустил мое приложение через Инструменты, и, кажется, у меня есть CFString, котораяпродолжает накапливаться.
Я думаю, что это моя база данных и как я продолжаю вставлять в нее больше данных.
Ребята, вы видите что-то не так с этим кодом:
- (void) insertImageWithImageNumber:(int) imageNumber URL:(NSString *) url ImageDesciption:(NSString *) description andGalleryNumber:(int) galleryNumber
{
NSString *imageName = [[NSString alloc] initWithString:[url lastPathComponent]];
NSURL *imageURL = [[NSURL alloc] initWithString:url];
NSData *imageData = [[NSData alloc] initWithContentsOfURL:imageURL];
// writing the image file to the Documents folder of this app
[[NSFileManager defaultManager] createFileAtPath:[MediaDirectory mediaPathForFileName:imageName] contents:imageData attributes:nil];
NSString *imagePath = [[NSString alloc] initWithString:[MediaDirectory mediaPathForFileName:imageName]];
//NSLog(@"Image stored in location: %@", imagePath);
const char *sqlCommand = "INSERT INTO galleryImages (imageNumber, imageURL, imageDescription, galleryNumber) VALUES (?, ?, ?, ?);";
sqlite3_stmt *statement;
sqlite3_prepare_v2(database, sqlCommand, -1, &statement, nil);
sqlite3_bind_int(statement, 1, imageNumber);
sqlite3_bind_text(statement, 2, [imagePath UTF8String], -1, SQLITE_TRANSIENT);
sqlite3_bind_text(statement, 3, [description UTF8String], -1, SQLITE_TRANSIENT);
sqlite3_bind_int(statement, 4, galleryNumber);
sqlite3_step(statement);
sqlite3_finalize(statement);
UIImage *thumbnailImage = [[UIImage alloc] initWithData:imageData];
// creating thubmanil of the full size image and storing them
UIGraphicsBeginImageContext(CGSizeMake(thumbnailImage.size.width / 4.0, thumbnailImage.size.height / 4.0));
// redraw the image in a smaller size (resizing the image)
[thumbnailImage drawInRect:CGRectMake(0, 0, thumbnailImage.size.width / 4.0, thumbnailImage.size.height / 4.0)];
// making a new thumbnail image from current context
UIImage *newThumbnailImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
// getting the binary data for the thumbnail image so we can write it to disk later
NSData *thumbnailData = UIImagePNGRepresentation(newThumbnailImage);
// write the thumbnail image to disk
NSString *thumbnailName = [[NSString alloc] initWithFormat:@"%@_thumb.%@", [imageName stringByDeletingPathExtension], [imageName pathExtension]];
//NSLog(@"Thumbnail path = %@", [MediaDirectory mediaPathForFileName:thumbnailName]);
[thumbnailData writeToFile:[MediaDirectory mediaPathForFileName:thumbnailName] atomically:NO];
[thumbnailImage release];
[thumbnailName release];
[imagePath release];
[imageData release];
[imageURL release];
[imageName release];
}
Подробнее Обновление
Я решила переделать дизайн моей программы и создать миниатюрные изображения на лету после вставки всего моего изображения в базу данных.Поэтому после цикла, который вставляет данные изображения, у меня есть еще один цикл, который создает эскизы изображений и добавляет их в интерфейс.
Полагаю, переделка моего дизайна - это одно из решений:)