2

在我的应用程序中,用户需要输入一些地址信息。从 1.0 版开始,我为此提供了一个地址簿按钮。这在我之前的测试中运行良好,但现在当我尝试设置我的 UITextField.Text 属性时,我得到了一个 SIGSEGV。每当我尝试在 MonoTouches 调试模式下从 PeoplePicker 中选择地址时,都会发生此错误,当我在 iPhone 上尝试时,错误会在设置 TextFields 和推送下一个 ViewController 之间随机发生。我的代码有什么问题还是错误?

        //AB Button Event
        addressBook.TouchUpInside += delegate {
            //Create new Picker
            ABPeoplePickerNavigationController PP = new ABPeoplePickerNavigationController();
            //Cancel Event
            PP.Cancelled += delegate {
                NavigationController.DismissViewController(true, null);
            };
            //Select Event
            PP.SelectPerson += delegate(object sender, ABPeoplePickerSelectPersonEventArgs e) {
                //Detailed Person View
                ABPersonViewController pv = new ABPersonViewController();
                //Action when clicked on a Property
                pv.PerformDefaultAction += delegate(object person, ABPersonViewPerformDefaultActionEventArgs ev) {
                    //If the Property was an Address
                    if(ev.Property.ToString() == "Address"){
                        string lands = "", orts = "", plzs = "";
                        try{
                            //Read the Detailed Address Data from the clicked property
                            ABMultiValue<PersonAddress> addresses = ev.Person.GetAllAddresses();
                            PersonAddress[] values = addresses.GetValues();
                            lands = values[ev.Identifier.Value].Country.ToString();
                            orts = values[ev.Identifier.Value].City.ToString();
                            plzs = values[ev.Identifier.Value].Zip.ToString();
                        }catch{
                            Console.WriteLine("Fehlerhafte Addresse");
                        }
                        //Set the Textfield with the new information
                        //iPhone Simulator in Debugmode crashes here everytime
                        land.Text = lands;
                        ort.Text = orts;
                        plz.Text = plzs;
                        //Close the Module
                        NavigationController.DismissViewController(true, null);
                    }
                };
                //Set selected Person for the person View
                pv.DisplayedPerson = e.Person;
                //Open Person View with navigation from the PeoplePicker Controller
                PP.PushViewController(pv, true);
            };
            //Open PeoplePicker Controller Module
            NavigationController.PresentViewController(PP, true, null);
        };

提前致谢!

4

1 回答 1

2

刚刚发布的 MonoTouch 6.0.5 修复了类似的问题

于 2012-10-29T21:32:34.280 回答