使用Objective-C读取SWF标题

使用Objective-C读取SWF标题,objective-c,cocoa,Objective C,Cocoa,我正在尝试使用NSData读取SWF文件的头。 根据SWF格式规范,我需要访问电影的宽度和高度读取位,而不是字节,我找不到在Obj-C中实现这一点的方法 字节9到?:这里存储一个RECT(电影的边界)。它必须以二进制形式读取。首先,我们将第一个字节转换为二进制:“01100000” 前5位将告诉我们每个存储值的位大小:“01100”=12 因此,我们有4个12位=48位的字段 48位+5位(RECT的头)=53位 用零填充以完成字节,直到达到8的倍数。53位+3位对齐位=56位(此RECT为7字

我正在尝试使用NSData读取SWF文件的头。 根据SWF格式规范,我需要访问电影的宽度和高度读取位,而不是字节,我找不到在Obj-C中实现这一点的方法

字节9到?:这里存储一个RECT(电影的边界)。它必须以二进制形式读取。首先,我们将第一个字节转换为二进制:“01100000” 前5位将告诉我们每个存储值的位大小:“01100”=12 因此,我们有4个12位=48位的字段 48位+5位(RECT的头)=53位 用零填充以完成字节,直到达到8的倍数。53位+3位对齐位=56位(此RECT为7字节长度,7*8=56) 我用这个公式来确定所有这些东西:


从哪里开始?

ObjC是C的超集:您可以与ObjC一起运行C代码,而不会出现任何问题

因此,您可以使用基于C的库从SWF文件中读取字节


如果您需要将字节混洗到
NSData
对象中,请查看
-dataWithBytes:length:
方法。

ObjC是C的超集:您可以在ObjC旁边运行C代码,而不会出现任何问题

因此,您可以使用基于C的库从SWF文件中读取字节


如果需要将字节重新排列到
NSData
对象中,请查看
-dataWithBytes:length:
方法。

首先查找具有兼容许可证的代码,该许可证已满足您的要求。可以从Obj-C代码中使用C库,只需将它们链接(或安排动态链接)然后调用它们的函数


如果做不到这一点,请从和开始。您可能希望提取包含感兴趣位的字节,然后使用位掩蔽技术提取您关心的位。您可能会发现
BitTst()
BitSet()
BitClr()
函数及其朋友很有用,如果它们仍然在雪豹中的话;我不确定它们是否最终进入了碳的démodé部分。还有中定义的Posix
setbit()
clrbit()
isset()
、和
isclr()
宏。最后,还有C位运算符:
^
|
&
~

首先查找具有兼容许可证的代码,该许可证已经满足了您的要求。可以从Obj-C代码中使用C库,只需将它们链接(或安排动态链接)然后调用它们的函数


如果做不到这一点,请从和开始。您可能希望提取包含感兴趣位的字节,然后使用位掩蔽技术提取您关心的位。您可能会发现
BitTst()
BitSet()
BitClr()
函数及其朋友很有用,如果它们仍然在雪豹中的话;我不确定它们是否最终进入了碳的démodé部分。还有中定义的Posix
setbit()
clrbit()
isset()
、和
isclr()
宏。最后,还有C位运算符:
^
|
&
~

我刚刚找到另一个C程序来读取SWF头,它似乎工作得很好,我可以毫无问题地编译它。现在我正试图找出如何将纯C与我的Obj-C应用程序混合。我刚刚找到另一个C程序来读取SWF头,它似乎工作正常,我可以毫无问题地编译它。现在,我正试图找出如何将纯C与我的Obj-C应用程序混合。请注意,如果是iPhone应用程序,则不可能动态链接到库。请注意,如果是iPhone应用程序,则不可能动态链接到库。