2012-05-10 28 views
8

Birden çok iOS uygulamasında kullanılacak statik bir kütüphane yapıyorum. Paralel olarak, bu uygulamaları kütüphanemde kullanarak çalışıyorum.Amaç - C Statik Kütüphane ve kamu başlıkları - doğru yol nedir?

Geliştirme sırasında, en az günde bir kez, kitaplıktaki başlık dosyalarının bulunmadığı (benim uygulama projemde) rahatsız edici bir hata yaşıyorum. ben statik kitaplık oluştururken benim kütüphanede sergilemek istediğiniz her başlık Public olması gerektiğini, başlıklar ya Public, Private veya Project

tahmin ediyorum olabileceğini öğrendik.

Sorum şu: Bu genel üstbilgileri yönetmenin en iyi yolu nedir? Tüm genel başlıklarıma #import ile bir ana genel başlık dosyası oluşturmalı mıyım? Xcode bu dosyayı benim için oluşturabilir mi?

Başka önemli bir soru, Public Header Folder Path ayarı için önerilen değer nedir?

Benim ana hedefi bu kütüphaneyi kullanacak gelecekteki projeleri,

Çok teşekkür ederim (vb User Header Search Path değişen ekleme bağlayıcı bayrakları) olabildiğince az yapılandırmaları gibi ile bunu mümkün olacak olmasıdır. kamu/özel/proje başlıklarını Hakkında

cevap

-1

, burada her ihtimale karşı bir önceki cevabı olduğunu =>https://stackoverflow.com/a/8016333/1075192

Çoğu zaman, C/C++/Obj-C kütüphaneleri ve çerçeveler dahil bir ana başlık olan tüm diğerleri. Kakao çerçeveleri bu yolu takip eder.

Bunu yapabileceğini örneğin QuartzCore çerçevesi ile CAAnimation bildirmek için:

#import "QuartzCore/CAAnimation.h" 

veya

#import "QuartzCore/Quartzcore.h" 

"QuartzCore.h" aslında sadece bir başlık bekçi oluşan ve tüm içerir kütüphanenin diğer başlıkları.

Benim düşünceme göre, aslında ihtiyacınız olmayan tüm beyanları içermediği için ilkini kullanmak daha iyidir. Ancak çoğu zaman, her şeyi bir anda dahil etmenin tembel çözümünü seçiyoruz.

Bunu doğrudan xCode ile üretip üretemeyeceğiniz hakkında hiçbir fikrim yok, zaten sadece bir grup içerme veya ithalat olduğu için bunu kendi başınıza yapacak kadar kolaydır.

Genel üstbilgi klasörü yolu genellikle "MyLibraryOrFramework/Headers" (örneğin, herhangi bir Cocoa çerçevesinin içine bakar).

Son olarak, gerçekten yeniden kullanılabilir ve sorunsuz bir şey istiyorsanız, statik kitaplık (neredeyse benzer olan) yerine çerçeveler kullanmanızı öneririm. , =>https://stackoverflow.com/a/6389802/1075192

Voilà Bu cevap biraz yardımcı umut: ne gerek mükemmel bir uyum neden bu ince cevaba

Bak anlamak için.

+6

Bu yanıt, tüm zor soruları (örneğin, üstbilginin genel/proje vb olması, doğru çıktı konumlarının ne olduğunu, Xcode'a bunu nasıl yapması gerektiğini) yoksayar ve Xcode'dan beri önemsiz olanları önemsiz olanlara yanıt verir. bunu otomatik olarak yakın tutar. – Adam

+2

@Adam Kabul ediyorum muhtemelen bu sorunun önemli noktalarını yanlış anlamışım. Aslında daha iyi bir cevap verebilirseniz çok iyi olur. – nsarno