Swift sınıfı, AdressBook özelliklerinin bir kısmını bildirirse ve bu sınıf karma Swift/ObjC projesinin bir parçasıysa, bu hata oluşur. Daha sonra Xcode, bu özellik (yalnızca atom olmayan, güçlü) hale gelen ve yalnızca nesneler için geçerli olan, yapıları olmayan Swift köprüleme başlığı oluşturur.
ABRecordRef nesnesini Objective-C sınıfından Swift sınıfına geçirmem gerektiğinde benzer bir sorunla karşılaştım: Xcode, Swift'deki ABRecordRef özelliğimi beğenmedi. Bu yüzden köprü başlığına ihraç edilmez, böylece bu özellik, özel yapım ve ABRecordRef almaya Swift sınıfında yeni bir yöntem ekleyerek sona erdi ettik:
class: PersonDetails {
private var selectedPerson: ABRecorfRef?
func setPerson(person: ABRecordRef) {
selectedPerson = person
}
}
Sonra da çağırabilir
[personDetails setPerson: person];
Objective-C sınıfından
.
bunun yerine bir ABAddressBookRef saklamak gerekmiyor kullanmak zorunda düşünüyorum
kullanımdan kaldırıldı? ABAddressBook bir yapıdır. Ya kurtulun! init atayarak veya a kullanarak? eğer ayarlanamazsa. –Zaman zaman sıfırlanabilir. Onu değiştirdim mi? ve hala aynı hatayı al. Ve bunu ABAddressBookRef'e değiştirmek de işe yaramıyor. – RyJ
Bu, Apple'ın beni CNContactStore'a geçiş yapmaya zorlamanın ince bir yolu olabilir. – RyJ