我有一个用Objective-C编写的Mac应用程序。现在我想制作一个用Swift编写的iOS版本。
我从一开始就遵循MVC模型。
我想在两个平台上共享模型代码。现在我遇到了一个我无法解决的问题。在Objective-C模型类中,我使用了NSFont
,这在iOS上不存在。使用UIFont
会给我一个未知的错误。那里没有UIKit
。
我需要做什么才能在一个课程中使用AppKit
和UIKit
?
我在这里做了什么:
#if TARGET_OS_IPHONE
UIFont* font;
#else
NSFont* font;
#endif
感谢您的帮助!
答案 0 :(得分:2)
浏览WWDC视频。有一个视频,苹果工程师解释他们所做的工作,以获得MacOS和iOS之间常见的Pages和Numbers代码。这应该给你一些想法。
如果你在Objective-C中拥有庞大的代码库,那么在将其更改为Swift时我并没有立即获得优势。
对于您希望会员成为NSFont或UIFont的情况,您的方法根本不起作用。在头文件中有更容易的地方
#if TARGET_OS_IPHONE
typedef UIFont MyFont;
#else
typedef NSFont MyFont;
#endif
避免在代码中只有ifdef。
答案 1 :(得分:0)
简短的回答:你做不到。您需要编写使用UIKit for iOS和AppKit for Mac OS的有条件编译的代码。