Подключение SQlite3 к UITextview

Я делаю приложение для iPad, у меня будет UITabelview и кнопка и UiTextview на том же экране. Моя задача состоит в том, что если я выберу некоторую строку в UITableview и нажмите кнопку, текст должен появиться в UITextview.

Я заполнил несколько методов, но это не сработало, может кто-нибудь дать мне знать, что именно я могу сделать, чтобы успешно выполнить эту задачу.

Пожалуйста, найдите мой код ниже для справки … это может помочь вам объяснить мою проблему.

#import <UIKit/UIKit.h> #import "table1.h" #import "textView.h" @interface searchOne : UIViewController { IBOutlet UITableView *firstTable; table1 *tableOne; textView * text1; int row; } @property(nonatomic,retain)IBOutlet UIButton * search; @property (nonatomic,retain) IBOutlet UITextView *txt; @property(nonatomic, assign) int row; -(IBAction)resPage:(id)sender; @end #import "searchOne.h" #import "textView.h" @implementation searchOne @synthesize search; @synthesize txt, row; - (void)viewDidLoad { [super viewDidLoad]; if (tableOne == nil) { tableOne = [[table1 alloc] init]; } [firstTable setDataSource:tableOne]; tableOne.view = tableOne.tableView; } - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { row = [indexPath row]; } -(IBAction)resPage:(id)sender{ NSString *str = txt.text; row = [str intValue]; NSLog(@"get clicked"); self.view =txt; } /* // Override to allow orientations other than the default portrait orientation. - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { // Return YES for supported orientations return (interfaceOrientation == UIInterfaceOrientationPortrait); } */ - (void)didReceiveMemoryWarning { // Releases the view if it doesn't have a superview. [super didReceiveMemoryWarning]; // Release any cached data, images, etc that aren't in use. } - (void)viewDidUnload { // [self setTxt:nil]; [super viewDidUnload]; } @end 

DB:

 #import <Foundation/Foundation.h> @interface db : NSObject{ NSInteger ID; NSString * name; } @property (nonatomic, retain) NSString * name; @property(nonatomic, readwrite) NSInteger ID; -(id)initWithID: (NSInteger)i andName:(NSString *)n; @end @implementation db @synthesize name,ID; -(id)initWithID: (NSInteger)i andName:(NSString *)n{ self=[super init]; if(self) { self.ID = i; self.name = n; } return self; } @end 

Вид табуляции:

 #import <UIKit/UIKit.h> #import "sqlite3.h" #import "db.h" @interface table1 : UITableViewController<UITableViewDataSource>{ NSString *databaseName; NSString * databasePath; NSMutableArray * tableOne; } @property(nonatomic, retain) NSMutableArray * tableOne; -(void)checkAndCreateDatabase; -(void)readDataFromDatabase; @end #import "table1.h" #import "db.h" @implementation table1 @synthesize tableTwo; #pragma mark - View lifecycle - (void)viewDidLoad { [email protected]"nobel10.db"; NSArray *documentPaths= NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString * documentDir = [documentPaths objectAtIndex:0]; databasePath=[documentDir stringByAppendingPathComponent:databaseName]; [self checkAndCreateDatabase]; [self readDataFromDatabase]; [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. } #pragma mark - TableView Data Source methods -(NSInteger) numberOfSectionsInTableView:(UITableView *)tableView{ return 1; } - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{ return [tableTwo count]; } // Row display. Implementers should *always* try to reuse cells by setting each cell's reuseIdentifier and querying for available reusable cells with dequeueReusableCellWithIdentifier: // Cell gets various attributes set automatically based on table (separators) and data source (accessory views, editing controls) - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ UITableViewCell *cell= nil; cell = [tableView dequeueReusableCellWithIdentifier:@"mycell"]; if (cell == nil) { cell=[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"mycell"];} db * temp =(db *)[self.tableTwo objectAtIndex:indexPath.row]; cell.textLabel.text=temp.name; return cell; } -(void)checkAndCreateDatabase{ BOOL success; NSFileManager *fileManager=[NSFileManager defaultManager]; success=[fileManager fileExistsAtPath:databasePath]; if(success) return; NSString *databasePathFromApp = [[[NSBundle mainBundle]resourcePath] stringByAppendingPathComponent:databaseName]; [fileManager copyItemAtPath:databasePathFromApp toPath:databasePath error:nil]; } -(void)readDataFromDatabase{ sqlite3 *database; tableTwo=[[NSMutableArray alloc]init]; if(sqlite3_open([databasePath UTF8String], &database)== SQLITE_OK){ const char *sqlStatement = "SELECT * FROM country"; sqlite3_stmt *compiledStatement; if(sqlite3_prepare_v2(database, sqlStatement, -1, &compiledStatement, NULL)==SQLITE_OK){ while (sqlite3_step(compiledStatement)==SQLITE_ROW) { NSInteger pId = sqlite3_column_int(compiledStatement, 0); NSString *stringName=[NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement, 1)]; db *info =[[db alloc]initWithID:pId andName:stringName]; [tableTwo addObject:info]; } } sqlite3_finalize(compiledStatement); } sqlite3_close(database); } @end 

UITextView:

 #import <UIKit/UIKit.h> #import "sqlite3.h" #import "db.h" @interface textView : UIViewController<UITextViewDelegate>{ NSString *databaseName; NSString * databasePath; NSMutableArray *textOne; NSString *description; } @property(nonatomic, retain) NSMutableArray *textOne; @property (nonatomic, retain) NSString *description; -(void)checkAndCreateDatabase; -(void)readDataFromDatabase; -(id)initWithDescription:(NSString *)d; @end #import "textView.h" @implementation textView @synthesize textOne, description;; #pragma mark - View lifecycle - (void)viewDidLoad { [email protected]"nobel10.db"; NSArray *documentPaths= NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString * documentDir = [documentPaths objectAtIndex:0]; databasePath=[documentDir stringByAppendingPathComponent:databaseName]; [self checkAndCreateDatabase]; [self readDataFromDatabase]; [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. } #pragma mark - TableView Data Source methods // Row display. Implementers should *always* try to reuse cells by setting each cell's reuseIdentifier and querying for available reusable cells with dequeueReusableCellWithIdentifier: // Cell gets various attributes set automatically based on table (separators) and data source (accessory views, editing controls) -(void)checkAndCreateDatabase{ BOOL success; NSFileManager *fileManager=[NSFileManager defaultManager]; success=[fileManager fileExistsAtPath:databasePath]; if(success) return; NSString *databasePathFromApp = [[[NSBundle mainBundle]resourcePath] stringByAppendingPathComponent:databaseName]; [fileManager copyItemAtPath:databasePathFromApp toPath:databasePath error:nil]; } -(void)readDataFromDatabase{ sqlite3 *database; textOne=[[NSMutableArray alloc]init]; if(sqlite3_open([databasePath UTF8String], &database)== SQLITE_OK){ const char *sqlStatement = "SELECT name,item_country.id,text.item FROM country,item_country,text WHERE country.name ='India' AND country.id = item_country.id AND text.item =item_country.item "; sqlite3_stmt *compiledStatement; if(sqlite3_prepare_v2(database, sqlStatement, -1, &compiledStatement, NULL)==SQLITE_OK){ while (sqlite3_step(compiledStatement)==SQLITE_ROW) { NSInteger pId = sqlite3_column_int(compiledStatement, 0); NSString *stringName=[NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement, 1)]; db *info =[[db alloc]initWithID:pId andName:stringName]; [textOne addObject:info]; } } sqlite3_finalize(compiledStatement); } sqlite3_close(database); } -(id)initWithDescription:(NSString *)d{ self.description = d; return self; } @end 

PLease помогите мне, я новичок в разработке iPad и ударил здесь.

Быстрый и грязный способ – просто удалить UITextView и добавить его обратно, когда вы выберете строку. Посмотрите, работает ли это.

Я понимаю, что это не вопрос, который вы задали, но в зависимости от ваших потребностей вы можете использовать Core Data вместо этого. Он абстрагирует базу данных .sqlite от вас и делает некоторые довольно интересные вещи с точки зрения использования памяти, моделирования объектов и отношений и так далее.

  • Как заставить черные границы для UIPopoverControllers
  • AVplayer полностью удаляет видео из памяти
  • Отклонение UIпоповер
  • Получите ivar или свойство из NSString
  • Курсор не отображается в UITextView
  • Каков размер изображения (разрешение) для разработки приложений iPad 3?
  • Ошибка приема «Не удалось подключиться к задаче; порт недействителен "при попытке запуска инструментов Xcode 7, средства выделения / утечки на подключенном iPad
  • iPad MPMoviePlayerController - отключить полноэкранный режим
  • Как сделать универсальный запуск проекта приложения Xcode 5 в альбомной ориентации?
  • UIDeviceOrientation ipad
  • Как реализовать данные первичного ключа и внешнего ключа в структуре классов в приложении Iphone
  • Interesting Posts

    PLCrashReporter всегда не возвращает аварийный журнал

    Где установлен ваш делегат приложения и кто инициализирует его свойства window и viewController?

    Как бороться с обновлением Xcode, чтобы рекомендовать предупреждение о настройке?

    Проверьте сходство между двумя строковыми выражениями в Swift

    Как инициализировать NSFetchedResultsController в iOS 10 Swift 3

    Facebook iOS Safari «Не удается открыть ошибку страницы» при аутентификации пользователя с помощью единого входа

    Почему мой UITableViewCells становится серым, когда я нажимаю на них?

    Не получать ответа при использовании restoreCompletedTransactions ()

    Установить ориентацию ландшафта для iPad только НЕ iPhone

    Обтравочные тени, созданные CALayer.shadow

    Проблемы с Push Notification iOS 10 – Уведомление не имеет пользовательского контента

    Порядок сортировки запросов Firebase в swift?

    Как сохранить gif в моем фотоальбоме?

    UITableViewAutomaticDimension не работает для нижнего колонтитула в iOS8

    Что такое «Хостинг контента с Apple»

    Давайте будем гением компьютера.