gpt4 book ai didi

ios - 将 GMSMarker 添加到 map 时,应用程序仅在 iPhone 5 上崩溃 : EXC_BAD_ACCESS

转载 作者:行者123 更新时间:2023-11-28 21:05:06 28 4
gpt4 key购买 nike

我正在开发的应用程序在谷歌地图上绘制了很多 GMSMarkers。它在除 iPhone 5 以外的所有其他设备上都运行良好。我已经将 GMSMarker 子类化并为该子类设置了一个对象 ID。这样做是为了让我可以将标记添加到 NSSet 中,并确保只绘制了不同的标记,没有重复的标记。子类是:

@implementation BYOMarker
-(BOOL)isEqual:(id)object
{
BYOMarker *otherMarker = (BYOMarker *)object;
if (self.objectID.intValue == otherMarker.objectID.intValue) {
return YES;
}
return NO;
}
-(NSUInteger)hash
{
return [self.objectID hash];
}
@end

.h 文件

#import <GoogleMaps/GoogleMaps.h>

@interface BYOMarker : GMSMarker
@property (assign, nonatomic) NSNumber *objectID;
@end

应用程序在哈希函数返回时崩溃,并出现 EXC_BAD_ACCESS 异常。当我为标记设置 map 对象时,我启用了 Zombie 对象并尝试打印 po marker.objectID,但出现以下错误:

*** -[CFNumber respondsToSelector:]: message sent to deallocated instance 0x80416470
0x80416470

有什么帮助吗?!时间差

最佳答案

objectID 属性存在内存管理问题。不要对对象指针属性使用 assign。使用 strong

@property (strong, nonatomic) NSNumber *objectID;

关于ios - 将 GMSMarker 添加到 map 时,应用程序仅在 iPhone 5 上崩溃 : EXC_BAD_ACCESS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46168740/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com