tôi có một đối tượng truy cập thông qua một var tĩnh trong một cấu trúc (workaround cho việc thiếu hỗ trợ biến lớp trong nhanh chóng ngay bây giờ), có cấu trúc như thế này:EXC_BAD_ACCESS trên iOS 8.1 với từ điển
struct Constants{
static var myObj = MyObject()
}
MyObject có từ điển trong nó như vậy:
class MyObject{
private var params = Dictionary<String,AnyObject>()
func addParam(key:String, value:AnyObject){
params[key] = value
}
}
Bây giờ trên các cuộc gọi đầu tiên để đối tượng này cho Contants.myObj.addParam("param", value:123)
tất cả là tốt và params có nội dung ["param":123]
. Trong lần gọi thứ hai cho số Contants.myObj.addParam("param", value:456)
, tôi nhận được EXC_BAD_ACCESS.
Đây là phần khởi động, điều này chỉ xảy ra trong iOS 8.1. Ngoài ra, nếu tôi thêm dòng let stupidHack = self.params
làm dòng đầu tiên của phương pháp addParam
, nó hoạt động tốt. Giả định của tôi là nó đề cập đến tính đột biến của từ điển. Việc cho phép bằng cách nào đó có thể kích hoạt từ điển để có thể thay đổi một lần nữa sau khi khởi tạo.
Có ai khác đã gặp sự cố này trước đây không? Bất kỳ ý tưởng về cách sửa chữa nó?
Cảm ơn!
Tôi gặp sự cố tương tự với ứng dụng Mac mà tôi đang xây dựng. Tôi đã bị rơi vào lần thứ ba, bất kể chuyện gì đã xảy ra. Bạn đang để cho phương pháp stupidHack làm việc cho tôi. Vì vậy, kỳ lạ, nhưng cảm ơn! –