我不明白如何记录参数中包含数组项的事件。
例如,如果我需要记录类似EventData Constants.Login的内容,
var parameters = new Dictionary<object, object> {
ParameterNamesConstants.Method, "Google" }
};
Analytics.LogEvent(EventNamesConstants.Login, parameters);
字符串
但是现在我需要记录EventNamesConstants.ViewItem
,其中一个参数是项目数组,其中项目有一个名称。
var items = new[]{
new Dictionary<object, object> {
ParameterNamesConstants.ItemName, title }
}
};
var parameters = new Dictionary<object, object> {
ParameterNamesConstants.Currency, currencyCode },
ParameterNamesConstants.Value, value },
ParameterNamesConstants.Items, items }
};
型
我得到了一个错误。我试图找到例子,但他们没有一个数组。我很抱歉。
错误是:
不知道如何封送类型为
'System.Collections.Generic.Dictionary`2[System.Object,System.Object][]'
to an NSObject
型
和func Analytics. Firebase的LogEvent是:
public static void LogEvent (string name, Dictionary<object, object>? parameters)
{
LogEvent (name, (parameters == null) ? null :
((parameters!.Keys.Count == 0) ? new NSDictionary<NSString, NSObject>
() : NSDictionary<NSString, NSObject>.FromObjectsAndKeys
(parameters!.Values.ToArray (), parameters!.Keys.ToArray (),
nint.op_Implicit (parameters!.Keys.Count))));
}
型
请帮帮我
2条答案
按热度按时间hts6caw31#
我也在我的应用程序中使用Firebase Analytics。
下面是
IDictionary<string, string>
上的一个合适的扩展方法,任何人都可以使用它轻松地将C#IDictionary
转换为iOSNSDictionary
字符串
如果你需要,这里是另一个在
IDictionary<string, object>
型
仅供参考:我使用
ArgumentNullException.ThrowIfNull
=>仅从C#10开始可用,如果您在C#10以下,请使用经典方式。8mmmxcuj2#
作为一种解决方法,您可以尝试以下方法来创建参数,
字符串