2016-09-19 29 views
5

neyi Elma geribildirim yok: Uygulamanız kullanan veya referanslar aşağıdaki kamuya açık olmayan API'ler:Uygulamam çünkü kamuya açık olmayan bir API geri çevrildiğini

  • init:

kullanımı Herkese açık olmayan API'ların App Store'da kullanılmasına izin verilmez, çünkü bu API'ların değişmesi durumunda kullanıcı deneyiminin zayıf olmasına neden olabilir.

Beni en çok şaşırtan şey "init:", gerçekten, "init:" ile ne demek istemiyorum? "Init:" kullanamıyoruz? Ayrıca, public olmayan API'leri kullandığımızda, herhangi bir ısınma var mı? Xcode'ta bu genel olmayan API'leri nasıl bulabilirim?

+1

Apple'a hitap ederdim veya belki tekrar denerim. IOS 10'un piyasaya sürülmesiyle kamuya açık olmayan API'larda bir çok sorun var gibi görünüyor. – Paulw11

cevap

3

Gerçekten adıyla init: cisimle edilmemelidir. Bu, bir parametresi olan init yöntemi, ancak bu parametrenin ne olduğu hakkında bir açıklama olmaz. Örneğin: Her zaman yanlış bir ad olacaktır. Doğru adı olacaktır:

- (instancetype) initWithName:(NSString *)string; 

(veya initWithTitle: veya initWithSomeOtherThingButSomething:)

yüzden ilk init: arayacaklarını ve bu kolayca düzeltilebilir olmalıdır. Bu isimde herhangi bir yönteminiz yoksa, bu muhtemelen Apple'ın aracında bir hatadır ve Apple ile tartışmanız gerekecektir.

+1

Kabul ediyorum. Sanırım kolon bir hediye. Yanlışlıkla özel bir yöntem uyguladıkları sorunlar yaşadım; Genel ad alanı nedeniyle yanlışlıkla yapmak kolaydır. Ancak her durumda 'init:' diye bir yöntem kullanılmamalıdır. 'Init' parametresiyle veya initWithThing: 've bir parametre değil' init: 'ile arama yapabilirsiniz. Ben aramak – matt

+0

"init:" benim bütün projede daha sonra iki sonuç var göstermektedir: - 'id yazar = [[_SBJsonWriterClass alloc] init: [[NSArray alloc] initWithObjects: "Temel fonksiyonlar" @ "Gelişmiş fonksiyonlar", @ @ Aksesuar "@" Gelişmiş fonksiyonlar "@" Temel fonksiyonlar -; "@: initWithObjects 'id ayrıştırıcı = [[[NSArray alloc [_SBJSONParserClass alloc] init]' ]] sıfır"," @ "Yardımcı konumlandırma", konumlandırma ", @" ", nil]];' Her ikisi de AFNetworking'in AFJSONUtilities.m dosyasındadır. AFNetworking'i silmeksizin bu sorunu çözebilir miyim? –

+3

AFNetworking'i yükseltin. Bu eski bir versiyona benziyor (muhtemelen pre-1.0?). Satıcı kütüphanelerinin düzenli olarak güncellenmesi önemlidir. –

İlgili konular