2016-03-31 13 views
0

Ben dataArlist (java android gibi) şeklinde nesnel-c sqlite db veri almak istiyorum. İşteNesne-c'deki nesnelerin listesinde sqlite db'den veri nasıl alınır?

i nesnel c yavaşlatmasında karıştı kod (.h) ve uygulama (.m)

Sınıf içine bu sınıfları dönüştürebilir Bu nasıl

için java sınıfı modellerine sahip 1

public class RecordingList { 

public ArrayList<RecordingItem> Items = new ArrayList<RecordingItem>(); 
} 

sınıf I gibi nesnel-c verileri elde etmeye çalışmak zorunda 2

public class RecordingItem { 

public int ID; 
public String RecordingTitle; 
public String RecordingSubTitle; 
public String RecordingAudioPath; 
public String RecordingDuration; 
public String RecordingNotePath; 
public String Date; 
public String Time; 
public String PlayListId; 
public ArrayList<RecordingAttachments> recordingAttachmentses = new ArrayList<RecordingAttachments>(); 
} 

Bu

- (NSArray*) getAllNotes 
    { 
     const char *dbpath = [databasePath UTF8String]; 
     if (sqlite3_open(dbpath, &database) == SQLITE_OK) 
     { 
      NSString *querySQL = [NSString stringWithFormat: 
            @"SELECT * FROM recordingItem"]; 
      const char *query_stmt = [querySQL UTF8String]; 
      NSMutableArray *resultArray = [[NSMutableArray alloc]init]; 
      if (sqlite3_prepare_v2(database, 
            query_stmt, -1, &statement, NULL) == SQLITE_OK) 
      { 
       if (sqlite3_step(statement) == SQLITE_ROW) 
       { 
        NSString *name = [[NSString alloc] initWithUTF8String: 
             (const char *) sqlite3_column_text(statement, 0)]; 
        [resultArray addObject:name]; 
        NSString *department = [[NSString alloc] initWithUTF8String: 
              (const char *) sqlite3_column_text(statement, 1)]; 
        [resultArray addObject:department]; 
        NSString *year = [[NSString alloc]initWithUTF8String: 
             (const char *) sqlite3_column_text(statement, 2)]; 
        [resultArray addObject:year]; 
        return resultArray; 
       } 
       else{ 
        NSLog(@"Not found"); 
        return nil; 
       } 
       sqlite3_reset(statement); 
      } 
     } 
     return nil; 
    } 

Ama bu istediğim şey değil, veri listesinden veri almak istiyorum bunu nasıl yapabilirim? Advance

cevap

1

Öncelikle kendi başınıza Objective C temelleri ile başlamak tavsiye edilir içinde

teşekkürler. Bundan sonra Java sınıflarınızı birkaç dakika içinde yeniden yazabilirsiniz.
CoreData (yalnızca iOS'u hedeflerseniz tavsiye edilen ve kullanışlıdır) kullanmak istemiyorsanız, veri getirme hakkında bilgi edinin. Burada yazdığınız tüm yerel içerikleri kullanmak ve gizlemek için FMDatabase.
Bir daha uyarı: koymak name, department, bir dizideki birbiri ardına year biri tüm verileri tutacak bir objc @interface oluşturun:

@interface Data : NSObject 

@property (nonatomic, strong) NSString *name; 
@property (nonatomic, strong) NSString *department; 
@property (nonatomic, strong) NSString *year; 

@end 

ve bu gibi kullanabilirsiniz:

NSMutableArray *resultArray = [NSMutableArray new]; 
// fetch ... 
Data *data = [[Data alloc] init]; 
data.name = [[NSString alloc] initWithUTF8String:(const char *) sqlite3_column_text(statement, 0)]; 
// other fields ... 
[resultArray addObject:data]; 

Bir uyarı daha: Java'da olduğu gibi you can now create parametrik diziler.

+0

ok Teşekkürler yanıtı için –

+0

@NisarAhmad En iyi teşekkürler burada SO oylama;) – schmidt9

İlgili konular