2016-06-14 12 views
20

Sadece projemi Xcode 8'e güncelledim ve bu hataları uygulamamın içerdiği çoklu dış çerçevelerde buluyorum. Bu derleme hatalarından kaçınmak için bir çözüm olabilir, ayarlara dokunabilir mi? Xcode 8: 'objc_unretainedPointer' kullanılamıyor yerine bir __bridge cast kullan

Bu

bir hata örneğidir: Xcode 8 için

const void * ivarPtr = objc_unretainedPointer(self) + ivar_getOffset(ivar); 
[decoder decodeValueOfObjCType:[ivarInfo[@"encoding"] UTF8String] at:(void *)ivarPtr]; 
+0

Hatalara ve eksiksiz hata iletilerine neden olan çizgileri gösterin. – Droppy

+0

'ivar nedir? Biraz daha içerik sağlayabilir misiniz lütfen? – JAL

+0

ivar is Ivar = class_getInstanceVariable (ivarInfo [@ "sınıf"], [ivarName UTF8String]); ama bunun uygun olmadığını düşünüyorum çünkü orada birşeyler değiştirebileceğimden çok az şey var çünkü dışarıdan gelen bir dış çerçevenin içindeki kod hakkında konuşuyoruz. – tonik12

cevap

18

(Ben bir ithal çerçeve çünkü değiştirmek mümkün olmadığım), bu olmalıdır:

const void * ivarPtr = (__bridge void *)(self) + ivar_getOffset(ivar); 
+0

Bu, sorunu çözmüyor, çünkü bu durum dışsal bir çerçevede gerçekleşiyor çünkü değiştiremiyorum. – tonik12

+0

@ user2461338 Kod değişikliği gerektirmeyen bir çözüm arıyor musunuz? – Droppy

+0

Bunun tek yol olduğuna inanıyorum. Değilse, duymaktan memnun olurum. – tonik12

2

Sen Basitçe can objc_unretainedPointer(self) yerine (__bridge void *) (kendi kendine)

İlgili konular