我想知道导入和包含在Object-c
中的区别顺便说一句,我不清楚动态链接和静态链接的区别。
如果我使用带静态链接的库, 这是否意味着我从库中为我的程序复制我需要的代码并与它们链接? 然后我的程序可以使用库中的代码。
如果我使用带动态链接的库, 这意味着我只在程序运行时将我需要的代码从库引用到我的程序。 然后我的程序可以使用“参考代码”。
答案 0 :(得分:2)
#import
与#include
和静态与动态关联是两个完全不相关的主题。
#include
直接在另一个文件中包含文件的内容,并且在C中可用(因此也在Objective-C中)。但是,只有当 时,才会包含文件的内容。 (例如,您不想两次声明相同的变量;它会导致编译器错误!)这就是在Objective-C中添加#import
的原因;它确切地说:仅当该文件尚未被#import
编辑时才包含文件的内容。如果您不确定要使用什么,则应该使用#import
。
静态与动态链接完全不同 - 链接在编译后发生,因此无法与#import
和#include
相关联,它们属于源代码。您对链接的想法完全正确,但是 - 您的应用中包含静态链接的库,您的用户不需要它们。引用动态链接库,并且必须存在于用户的计算机上才能运行应用程序。