- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我的 appDelegate
中,我正在使用 LocationManager
:
- (void)locationManager: (CLLocationManager *)manager
didUpdateToLocation: (CLLocation *)newLocation
fromLocation:(CLLocation *)oldLocation
{
float latitude = newLocation.coordinate.latitude;
strLatitude = [NSString stringWithFormat:@"%f",latitude];
float longitude = newLocation.coordinate.longitude;
strLongitude = [NSString stringWithFormat:@"%f", longitude];
[self CheckOperation];
}
strLatitude 和 strLongitude 是全局字符串。这绝对没问题。即使在分析应用程序时,我也没有发现任何内存泄漏。但是当我分析我的应用程序时,我在
处收到内存泄漏strLatitude = [NSString stringWithFormat:@"%f",latitude];
和
strLongitude = [NSString stringWithFormat:@"%f", longitude];
32 字节。
我该如何解决?
最佳答案
您确定看到的是泄漏而不仅仅是分配吗?
如果这里确实有泄漏,那么有一些潜在的嫌疑:
您在使用 ARC 吗?如果没有,这里有一些可能的问题:
你是在 dealloc 中释放它吗?
如果此方法运行了不止一次,则在重新分配它之前不会释放最后一个值。
如果您没有使用复制语义,并且您正在将此字符串引用传递给其他人,而他们没有正确发布它,您也会返回到此行。
编辑:
(根据下面的评论)
您应该意识到 stringWithFormat:
正在分配一个字符串并在其上排队自动释放...因此您需要将其保留在某个地方。
我假设您在某处执行此操作是因为您没有收到“EXC_BAD_ACCESS”- 而是,据推测,泄漏。
你不应该泄漏一个自动释放的对象,除非你把它保留在某个地方(因此假设)。
鉴于您需要将其保留在某个地方,我的上述建议是有效的 - 每个保留都需要一个匹配的版本。
我同意您应该为这些字符串使用属性。
转换它们很简单 - 并为您处理很多事情。
在您的界面中:
@property (nonatomic, copy) NSString * strLatitude;
在您的实现中:
@synthesize strLatitude;
分配:
self.strLatitude = ...
(“self.”部分很重要)
并确保在 dealloc 中将其设置为 nil。
关于iphone - NSString stringWithFormat 仪器内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9389274/
这个问题在这里已经有了答案: How to add percent sign to NSString (7 个回答) 6年前关闭。 我搜索并找不到这个答案...... 如果我有这个,我怎样才能让它显示
我不知道我在这里错过了什么。我正在尝试使用 [NSString stringWithFormat] 函数连接字符串。这就是我正在做的事情。 NSString *category = [row obje
我有为 MD5 munge 准备消息的 java 代码 private static char[] jimsCopyRight = { 'C'、'o'、'p'、'y'、'r'、'i'、'g'、'h'、
我正在尝试使用 MFMailComposeViewController 撰写电子邮件,并且我正在使用绘制表格的 HTML 字符串。它有 265 个参数,所以我必须像这样传递它: [mailViewCo
我需要知道是否有一种方法可以使用 if 语句来显示某些 nsstring,具体取决于 NSString 是否包含任何数据。 我有一个名为 visitorInfo 的 nsstring。 该字符串使用来
调试如下代码时 NSString *var1 = @"blaa"; NSString *var2 = @"blaaaaa"; NSString* script = [NSString stringWi
我对StringWithFormat有疑问不工作。调试器表示返回的字符串不是 NSString (而且它不为空),因此我用假设的 NSString 进行调用将与方法选择器不匹配,并且我的应用程序崩溃。
简单/基本问题: 如果我不关心格式化所获取的日期,两者之间的性能差异是什么? NSDate *date = [NSDate date]; NSSting *dateString = [NSStri
我有一个枚举属性: typedef enum syncCodeTypes { kCodeNull, kCodeFoo, kCodeBar, kCodeDone } sy
此代码在名为username的UILabel中显示了用户的caption caption.text = [NSString stringWithFormat:@"@%@",[data objectFo
我知道方法stringWithFormat通常使用如下: [NSString stringWithFormat: @"%@ %@", arg1, arg2]; 我的问题是,这个方法的最后一个参数的类型
如果达到给定的有效位数,我想将 double 转换为字符串,并自动(!)从十进制切换到科学数(类似于 stringWithFormat(“.5g”)!)。示例: 55555 -> "55555" 55
我正在为我的应用程序提取推文,我希望能够以特定方式和颜色设置我的推文的格式。例如,这是一条简单的推文... "@somename This is a sample tweet from twitter
谁能解释为什么这段代码能完美运行: int thumbnailPrefix = trunc([newGraph.dateCreated timeIntervalSinceReferenceDate])
当我阅读如何在 iOS 中使用 Sqlite 时,我遇到了以下行 NSString *query = [NSString stringWithFormat:@"SELECT * FROM tableN
我正在将一些 Objective C(一种我从未使用过的语言......)移植到 C# 项目中,并进入了以下行: altStr = [NSString stringWithFormat:@"%.16f
如果这是一个菜鸟问题,我深表歉意。 我一直在关注this关于 mapkit 的教程,我无意中发现了这行代码 NSString *json = [NSString stringWithFormat:fo
我最近在使用 NSString 的 stringWithFormat: 方法时遇到了很多麻烦。我已经编写了一个对象,它允许您将 N 行文本(由新行分隔)居中、向右或向左对齐。我逻辑的核心是 NSStr
在我的 appDelegate 中,我正在使用 LocationManager : - (void)locationManager: (CLLocationManager *)manager
我将我的申请提交给苹果审核。苹果拒绝并给了我以下崩溃报告。 Thread 0 Crashed: 1 Foundation 0x3595dd04 _NSDe
我是一名优秀的程序员,十分优秀!