gpt4 book ai didi

ios - Monotouch 导入联系人 - 返回类型问题

转载 作者:行者123 更新时间:2023-11-29 11:02:56 24 4
gpt4 key购买 nike

如果他们被选中,我试图让这个方法返回一个人。我的问题是我收到一条错误消息,指出委托(delegate)不能返回 void 以外的类型,这很烦人,因为我不希望此方法返回,除非这两个操作之一发生。有什么建议吗?

public static ABPerson ImportContact ()
{
// Create placeholder for contact
ABPeoplePickerNavigationController _contactController = new ABPeoplePickerNavigationController ();
AppDelegate.navigation.PresentViewController (_contactController, true, null);

_contactController.Cancelled += delegate {
AppDelegate.navigation.DismissViewController (true, null);
return;
};

_contactController.SelectPerson += delegate(object sender, ABPeoplePickerSelectPersonEventArgs e) {
_importedContact = e.Person.GetEmails().FirstOrDefault;
AppDelegate.navigation.DismissViewController (true, delegate {
return e.Person;
});
};
}

最佳答案

您试图在内部委托(delegate)方法中返回函数结果。实现起来是不可能的。尝试改用公共(public)事件。即:

    public event Action<ABPerson> OnPersonSelect;
public void ImportContact ()
{
// Create placeholder for contact
ABPeoplePickerNavigationController _contactController = new ABPeoplePickerNavigationController ();
NavigationController.PresentViewController (_contactController, true, null);

_contactController.Cancelled += delegate {
NavigationController.DismissViewController (true, null);
return;
};

_contactController.SelectPerson += delegate(object sender, ABPeoplePickerSelectPersonEventArgs e) {
var _importedContact = e.Person;
NavigationController.DismissViewController (true, delegate {
if (OnPersonSelect != null)
{
OnPersonSelect(_importedContact);
}
});
};
}

请注意,我将此方法标记为非静态的,以便在我自己的测试示例中使用它。

关于ios - Monotouch 导入联系人 - 返回类型问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15033727/

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