がここに私のコードRoorviewcontrller.hiPhoneの画像ギャラリーは、1つだけの画像を複数回
@class PhotoDataSource;
@interface RootViewController : KTThumbsViewController
{
PhotoDataSource *data_;
}
@end
Rootviewcontrollr.mファイル
@implementation RootViewController
- (void)dealloc
{
[data_ release], data_ = nil;
[super dealloc];
}
- (PhotoDataSource *)data
{
if (data_) {
return data_;
}
data_ = [[PhotoDataSource alloc] init];
return data_;
}
- (void)viewDidLoad
{
[super viewDidLoad];
[self setDataSource:[self data]];
[self setTitle:[NSString stringWithFormat:@"%i Photos", [data_ numberOfPhotos]]];
UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:NSLocalizedString(@"Back", @"Back button title") style:UIBarButtonItemStylePlain target:nil action:nil];
[[self navigationItem] setBackBarButtonItem:backButton];
[backButton release];
}
.hファイル
@interface PhotoDataSource : NSObject <KTPhotoBrowserDataSource>
{
NSMutableArray *data_;
sqlite3 *UsersDB;
NSString *databasePath;
NSString *coun;
NSMutableArray *sa;
NSString *fullPathToFile;
}
@property (nonatomic, assign) NSString *coun;
@end
.Mていることを示しますファイル
@implementation PhotoDataSource
- (void)dealloc
{
[data_ release], data_ = nil;
[super dealloc];
}
- (id)init
{
self = [super init];
if (self)
{
NSArray* paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString* documentsDirectory = [paths objectAtIndex:0];
sqlite3_stmt *statement;
NSString *docsDir;
NSArray *dirPaths;
sa = [[NSMutableArray alloc] init];
dirPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
docsDir = [dirPaths objectAtIndex:0];
databasePath = [[NSString alloc] initWithString: [docsDir stringByAppendingPathComponent: @"Aapke.db"]];
NSLog(@"%@",databasePath);
const char *dbpath = [databasePath UTF8String];
if (sqlite3_open(dbpath, &UsersDB) == SQLITE_OK)
{
NSString *querySQL = [NSString stringWithFormat: @"SELECT ImagePath FROM AssetImage",nil];
const char *query_stmt = [querySQL UTF8String];
if (sqlite3_prepare_v2(UsersDB, query_stmt, -1, &statement, NULL) == SQLITE_OK)
{
while (sqlite3_step(statement) == SQLITE_ROW)
{
NSLog(@"select");
coun=[[NSString alloc] initWithUTF8String:(char *)sqlite3_column_text(statement, 0)];
NSLog(@"Coun = %@",coun);
fullPathToFile = [documentsDirectory stringByAppendingPathComponent:coun];
NSString *imageName1 = [NSString stringWithFormat:@"%@",fullPathToFile];
NSLog(@"fullpathfile= %@",fullPathToFile);
NSLog(@"Image Name1=%@", imageName1);
[sa addObject:fullPathToFile];
data_ = [[NSMutableArray alloc] init];
NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:[UIImage imageWithContentsOfFile:imageName1], @"thumbnail", [UIImage imageWithContentsOfFile:imageName1], @"fullsize", nil];
[data_ addObject:dict];
NSLog(@"dict = %@",dict);
}
sqlite3_finalize(statement);
}
}
NSLog(@"SA=%@",sa);
}
return self;
}
- (NSInteger)numberOfPhotos
{
NSInteger count = [sa count];
[data_ count];
return count;
}
- (UIImage *)imageAtIndex:(NSInteger)index
{
NSDictionary *dict = [data_ objectAtIndex:0];
UIImage *image = [dict objectForKey:@"fullsize"];
return image;
}
- (UIImage *)thumbImageAtIndex:(NSInteger)index
{
NSDictionary *dict = [data_ objectAtIndex:0];
UIImage *image = [dict objectForKey:@"thumbnail"];
return image;
}
@end
私はこのコードを実行し、正常に実行しました。しかし、それは単一の画像を示す。私はiPhoneのSDKのパスに複数の画像を格納しました。すべての画像が表示されていません。私はすべての画像を表示したい。しかし、このコードは、dbパスからの1つの画像だけを、同じ画像と同じくらいたくさん表示します。このコードを使用してすべての画像を表示する方法。誰でもplsはアドバンスで感謝を助けます。
それが正常に動作しないウィル。複数回に1枚の画像しか表示しない –