如何读取从一个方法中的值的另一种方法
问题描述:
以下是我使用的代码,如何读取从一个方法中的值的另一种方法
- (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方法中的预期值,我犯的错误。 在此先感谢。
答
使用@property(非原子,保留)为nsmutablearray
个人?另外尝试检查数值是否在数组中获取。数组填充值后使用retain。
我已经使用@property(nonatomic,retain)为NSMutablearray人员。 – shasha 2012-02-01 06:02:31
以及如何在[persons addObject:temp]之后保留可变数组;还尝试检查数值是否在数组中获取? – Sarah 2012-02-01 06:06:03
我也尝试在[persons addObject:temp]之后保留可变数组;但没有得到值 – shasha 2012-02-01 06:20:22