void CountlyRecordEventSegmentationCountSum(const char * key, const char * segmentation, int count, double sum)
{
NSString * seg = CreateNSString(segmentation);
NSArray * entries = [seg componentsSeparatedByString:@"`"];
NSDictionary * dict = [NSDictionary dictionary];
for (id entry in entries)
{
NSArray * keyValue = [entry componentsSeparatedByString:@"|"];
[dict setValue:[keyValue objectAtIndex:1] forKey:[keyValue objectAtIndex:0]];
}
[[Countly sharedInstance] recordEvent:CreateNSString(key) segmentation:dict count:count sum:sum];
}
我放 ”?” 在标题中,因为我不完全确定问题是否出在上面的代码中,但这是我最好的猜测。我正在将 Countly iOS 插件与 Unity 集成,并且 Countly 插件的方法之一NSDictionary *
作为参数。因为我不知道如何将字典从 C# 发送到 Objective-C,所以我将我的 dict 存储在 a 中string
,将其发送到 Objective-C,然后重新创建字典(上面的代码)。
但这可能甚至不相关。我知道EXC_BAD_ACCESS
通常与未释放的资源或某事有关,所以也许您可以看到我做错了什么(我根本不了解Objective-C,只写了插件所需的几行)。
编辑:来自 Unity 示例:
// Converts C style string to NSString
NSString * CreateNSString (const char * string)
{
if (string)
return [NSString stringWithUTF8String: string];
else
return [NSString stringWithUTF8String: ""];
}