2014-07-03 58 views
0

我需要能够从远程服务器上下载头文件(.h)并在运行时加载它并使用它的内容 - 主要是数组,结构体等。我该怎么做目标C中的iOS sdk?在运行时加载头文件

+1

没有头文件只被编译器使用。 – rckoenes

+3

你可以给我们一些背景 - 你到底想要达到什么目的? –

+0

如果你打算在运行时加载一个类,请使用它作为参考..但我怀疑这是可用于iOS ... https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/LoadingCode /LoadingCode.html#//apple_ref/doc/uid/10000052-SW1 – Krishnan

回答

2

你需要一个C编译器来解析这些头文件,如果它们包含的都是3D模型数据,那就有些过度了。 (更不用说不允许App Store了。)

您应该考虑将3D数据导入到您的应用中的其他格式。我相信可能会有像Wavefront OBJ这样的格式的第三方库,并且在iOS 8中,您可以使用SceneKit加载Collada DAE和Alembic ABC文件(但只能在Xcode压缩后)。

+0

谢谢,这是我会去的。这对我来说更是一个好奇的话题,我想知道客观的c是否有类似于js中eval()的东西,我可以在运行时从字符串生成整个方法/类,但我想这是不可能的。 –

0

它会帮助抓住远程plist并在运行时处理配置?你可以这样做:

NSURL *plistUrl = [NSURL URLWithString:@"http://theurlto.com/your.plist"]; 
NSDictionary *remotePlistDictionary; 
NSURLRequest *request = [NSURLRequest requestWithURL:plistUrl cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:10.0]; 
NSError *error; 
NSData *responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:&error]; 

if (!error) 
{ 
    NSString *responseString = [[NSString alloc] initWithData:responseData encoding:NSASCIIStringEncoding]; 
    remotePlistDictionary = [responseString propertyList]; 
} 

字典remotePlistDictionary将包含配置。该plist甚至可以根据URL参数动态生成。