Jef*_*688 1 memory-management exc-bad-access objective-c nsdictionary ios
我正在尝试使用3个元素创建一个字典对象,其中一个元素是BOOL值.我收到一个EXC_BAD_ACCESS(代码= EXC_ARM_DA_ALIGN,地址= 0x5),我使用[NSDictionary dictionaryWithObjectsAndKeys:object,key,nil]将BOOL存储为对象
以下代码有什么问题:
- (void) retrieveAchievmentMetadata
{
[GKAchievementDescription loadAchievementDescriptionsWithCompletionHandler:
^(NSArray *descriptions, NSError *error) {
if (error != nil)
{
// Process the error.
}
if (descriptions != nil)
{
[self setAchievementDescriptions:[[NSMutableDictionary alloc] init]];
for (GKAchievementDescription *achievementDescription in descriptions) {
NSDictionary *achievementData = [NSDictionary dictionaryWithObjectsAndKeys:
[achievementDescription achievedDescription], @"Achieved Description",
[achievementDescription maximumPoints], @"Maximum Points",
[NSNumber numberWithBool:FALSE], @"Level Is Completed", nil];
[achievementDescriptions setObject:achievementData forKey:[achievementDescription identifier]];
}
}
}];
Run Code Online (Sandbox Code Playgroud)
}
行上发生EXC_BAD_ACCESS错误
[NSNumber numberWithBool:FALSE], @"Level Is Completed", nil];
Run Code Online (Sandbox Code Playgroud)
崩溃的原因是[achievementDescription maximumPoints],maximumPoints属性返回的NSInteger不是NSNumber实例.
将其更改为:
[NSNumber numberWithInteger:[achievementDescription maximumPoints]], @"Maximum Points", ...
| 归档时间: |
|
| 查看次数: |
1828 次 |
| 最近记录: |