2012-02-01 26 views
0

以下是我使用的代碼,如何讀取從一個方法中的值的另一種方法

- (void) readDataFromDatabase{ 

    sqlite3 *database; 
    persons = [[NSMutableArray alloc]init]; 

    if (sqlite3_open([databasePath UTF8String], &database) == SQLITE_OK){ 

     const char *sqlStatement = "select * from sdata"; 
     sqlite3_stmt *compiledStatement; 
     if (sqlite3_prepare_v2(database, sqlStatement, -1, &compiledStatement, NULL) == SQLITE_OK){ 

      while (sqlite3_step(compiledStatement) == SQLITE_ROW) { 

       pID = sqlite3_column_int(compiledStatement, 0); 
       pName = [NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement, 1)]; 
       pAdd = [NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement, 2)]; 
       pPh = sqlite3_column_int(compiledStatement, 3); 
       pCp = [NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement, 4)]; 
       pLat = [NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement, 5)]; 
       pLong = [NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement, 6)]; 

       Person *temp = [[Person alloc]initWithID:pID name:pName address:pAdd phone:pPh contactperson:pCp fLat:pLat fLong:pLong]; 


       [persons addObject:temp]; 
       NSLog(@"Inside Persons : %@",persons); 
       [temp release]; 

      } 

     } 
     sqlite3_finalize(compiledStatement); 
    } 
    sqlite3_close(database); 
} 
For the NSLog in NSLog(@"Inside Persons : %@",persons);i get the output as Inside Persons : ("<Person: 0x4c26ae0>" 

- (void)startTest 
{ 

    for(int j=0;j<[persons count];j++){ 

     Person *arr = [persons objectAtIndex:j]; 


     NSString *s = [[NSString alloc]initWithFormat:@"%f",arr.fLat] ; 
     NSLog(@" data in array : %@", s); 
    } 


#define COORDS_COUNT 1 
#define RADIUS  100.0f 

    CLLocationCoordinate2D coords[COORDS_COUNT] = { 
     CLLocationCoordinate2DMake([arr.fLat floatValue], [arr.fLong floatValue ]), 


    }; 

    CLLocationCoordinate2D center = CLLocationCoordinate2DMake([lat floatValue], [longt floatValue]); 
    CLRegion *region = [[CLRegion alloc] initCircularRegionWithCenter:center radius:RADIUS identifier:@"Banashankari"]; 



    for (int i = 0; i < COORDS_COUNT; i++) 
    { 
     CLLocationCoordinate2D coord = coords[i]; 

     NSString *coordString = [NSString stringWithFormat:@"%f,%f",coord.latitude, coord.longitude]; 
     [dataArray addObject:coordString]; 

     if ([region containsCoordinate:coord]) 
     { 
      NSLog(@"location %f, %f is within %.0f meters of coord %f, %f", coord.latitude, coord.longitude, RADIUS, center.latitude, center.longitude); 
      [resultArray addObject:coordString]; 
      NSLog(@"data in resultArray %@",resultArray); 
     } 
     else 
     { 
      NSLog(@"location %f, %f is not within %.0f meters of coord %f, %f", coord.latitude, coord.longitude, RADIUS, center.latitude, center.longitude);  

     } 
    } 
} 

對於的NSLog(@「在陣列數據:%@」,S);我得到的輸出數據爲數組:0.000000,但期望的值是12.920684,77.560033。 如何獲得startTest方法中的預期值,我犯的錯誤。 在此先感謝。

回答

1

使用@property(非原子,保留)爲nsmutablearray個人?另外嘗試檢查數值是否在數組中獲取。數組填充值後使用retain。

+0

我已經使用@property(nonatomic,retain)爲NSMutablearray人員。 – shasha 2012-02-01 06:02:31

+0

以及如何在[persons addObject:temp]之後保留可變數組;還嘗試檢查數值是否在數組中獲取? – Sarah 2012-02-01 06:06:03

+0

我也嘗試在[persons addObject:temp]之後保留可變數組;但沒有得到值 – shasha 2012-02-01 06:20:22

相關問題