Bu 2 sistem için platformlar arası kitaplık oluşturmayla ilgili birçok soru okuyorum. Her cevap, çözüm olarak statik kütüphaneye işaret eder.Bir iOS/OS X çapraz platform sınıfı oluşturma
ben statik kütüphane ile sona istemiyorum, ben OS X
-(void)createColor:(NSColor*);
-(void)createColor:(UIColor*);
I gereken ilk sorun için iOS için yöntem ve bunların muadili olan bir sınıf oluşturmak istiyorum Sadece belirli bir sistemde kullanılabilen sınıfları kullanmanın bir yolunu bulamıyorum. Örneğin, iOS'ta UIColor
ve OS X'te NSColor
ile çalışan bir işlevi nasıl yönetebilirim?
iOS için bir proje oluşturursam, Foundation.h
'a baktığımda, üstbilgi listesinde NSColor.h
'u bulamıyorum.
İki sistem arasında ayrım yapmak için TARGET_OS_MAC
ve TARGET_OS_IPHONE
tanımlarını kullanmayı düşündüm ... Doğru yoldayım? Bir iOSTestApp ve OSxTestApp: Ben 2 hedef var Şu anda
:
DÜZENLEME daha fazla bilgi eklemek. Bu hedefler için, sisteme bağlı olarak gerekli çerçeveleri dahil ettim.
TARGET_OS_MAC
ve TARGET_OS_IPHONE
öğelerini kullanmak, yalnızca OSXTestApp etkin hedef olarak seçtiğimde çalışır. Ben iOSAppTest seçtiğinizde, Xcode OS X veri türü için hatalarını (yani NSColor
) İşte
bu hataları üreten koduna örnek verir:
#if TARGET_OS_MAC
-(void)createColor:(NSColor*)color;
#elif TARGET_OS_IPHONE
-(void)createColor:(UIColor*)color;
#endif
bunun işe yaradığını tanımlar tersine eğer iken .. . Burada bu hataları üreten koduna örnek: #if TARGET_OS_IPHONE
-(void)createColor:(UIColor*)color;
#elif TARGET_OS_MAC
-(void)createColor:(NSColor*)color;
#endif
, IOS için bir statik kitaplığa ihtiyacınız olduğunu yanıtladı - sorunun geri kalanı, –
elde edemiyorum Aşağı oyu anlayamıyorum. Her neyse, dinamik bir kütüphane oluşturmak istemiyorum ... Size bir Yardımcı Sınıf oluşturmak istediğimi söylemiş olsaydım, çoklu platform çok daha iyi geliyor mu? – MatterGoal
çünkü soru bana çok net değil ve yorumunuz yardımcı değil: D "Dinamik bir kütüphane istemiyorum" dediğinizde "statik olmayan bir kütüphane oluşturmak": D –