我想在我的应用中显示一个小的静态谷歌地图.我想知道是否可以使用UIImageView来做到这一点?它似乎对我不起作用,但也许我做错了什么.
这就是我所拥有的(我删除了URL以便更容易阅读):
NSURL *mapurl = [[NSURL alloc] initWithString:@"http://maps.google.com/maps/api/staticmap?[...]"];
NSData *mapdata = [[NSData alloc] initWithContentsOfURL:mapurl];
UIImage *uimap = [[UIImage alloc] initWithData:mapdata];
self.map.image = uimap; // map is my UIImageView
[mapurl release];
[mapdata release];
[uimap release];
Run Code Online (Sandbox Code Playgroud)
我知道我的UIImageView设置正确,因为如果我用一个图像替换URL,那么它加载正常.此外,我知道谷歌地图网址是正确的,因为如果我直接加载到浏览器它显示正常.
我开始认为这可能是不可能的.如果有人有任何想法或替代方案,请分享.
谢谢.
我需要获得某种缩放因子,告诉我地图缩放了多少(每当区域发生变化时).
我的第一个想法是使用跨度的delta纬度或经度值.我将跟踪"旧"值,然后在地图区域更改时更新值,并将比率与旧值进行比较.
我正在使用以下委托方法:
- (void)mapView:(MKMapView *)mapView regionDidChangeAnimated:(BOOL)animated {
// Get the new value
CLLocationDegrees newdlat = mapView.region.span.latitudeDelta;
// Find the zoom ratio (use longitude instead?)
CGFloat zoomRatio = newdlat / olddlat;
// Update the old value (defined elsewhere)
olddlat = newdlat;
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我没有使用经度delta,因为我认为它会按比例缩放到纬度,这将产生相同的比率(这是错误的吗?).
问题是当我在滚动地图时检查经度和纬度增量的值(没有缩放)时,值会略有变化.如果地图没有缩放,跨度值是否应该保持不变?也许我误会了什么.
由于这种微小的变化,我担心我的缩放比率不够准确无法依赖(最终我将使用它来缩放地图上的注释图像).
我的主要问题是这是一个很好的方法,还是有一种更简单的方式可以忽略?
谢谢你的帮助.
我的一个表中有一个"布尔"列(值为0或1).
我需要得到两个计数:布尔值设置为0的行数和设置为1的行数.目前我有两个查询:一个计数1,另一个计算0.
在使用WHERE条件计算行时,MySQL是否遍历整个表?我想知道是否有一个查询允许两个计数器根据不同的条件?
或者有没有办法获得WHERE条件计数的总计数?这就足够了,因为我只需要从另一个中减去一个计数(由于列的布尔性质).没有NULL值.
谢谢.
如果在释放之前dealloc方法中对象的保留(引用)计数大于1,这是否意味着内存泄漏?
我正在调试我的代码以找到另一个问题,但后来遇到了这个微妙的问题.在dealloc方法中,我的一个对象的保留计数是3.此对象是具有retain的属性,仅在类中调用.现在我想在dealloc方法中所有对象的保留计数应该是1,然后才能正确释放?
这是自定义类中的dealloc方法示例:
- (void)dealloc {
// Prints: "myObject retaincount: 3"
NSLog(@"myObject retaincount: %d", [myObject retainCount]);
// myObject retain count will be 2 after this call
[myObject release];
[super dealloc];
}
Run Code Online (Sandbox Code Playgroud)
这是正常的吗?
我需要在我正在加载的XML文件中的字符串中指示"新行".
如果我硬编码字符串:
myTextView.text = [NSString stringWithString:@"Line1 \nLine2 \nLine3"];
Run Code Online (Sandbox Code Playgroud)
它显示:
Line1
Line2
Line3
Run Code Online (Sandbox Code Playgroud)
(如预期的那样)
但是,如果我将确切的字符串放在我的XML文件中:
<someNode string="Line1 \nLine2 \nLine3" />
Run Code Online (Sandbox Code Playgroud)
然后将其加载到它显示的UITableView中:
Line1 \nLine2 \nLine3
Run Code Online (Sandbox Code Playgroud)
我在某处读过'\n'字符是在编译时处理的,这是真的吗?这可以解释我所看到的行为.
如果是这种情况,我怎么能在我的XML加载字符串中定义一个新行,并仍然在UITextView中正确处理它?还有另一种方法吗?
谢谢.
iphone ×4
google-maps ×2
objective-c ×2
count ×1
mkmapview ×1
mysql ×1
newline ×1
retain ×1
uiimageview ×1
uitextview ×1
xml ×1