Tag: objective c

读取nsdictionary与nsarray的性能

继续这篇文章: 使用NSMutableDictionary与NSMutableArray>产生的性能损失 我正在尝试进行一些测试,看看性能差距是否对NSArray和NSDictionary以及它们的可变coutnerparts之间的读写非常有用…… 但是,我很难找到“平衡”测试…因为字典有2个(或3个,具体取决于你如何看待这个)对象循环以获取所寻找的值(而不是键),而数组只有一… 有什么建议? – 如果你想了解更多细节:我的意思是通过例子更容易解释; 对于数组:(对于数组中的NSString * str){do smth with the string} 对于字典 (for NSString *str in [dictionary allValues]) { string } 要么 (for NSString *str in [dictionary allKeys]) { [dictionary valueForKey:key] } 要么 (for NSString *str in [dictionary allKeys]) { string } 甚至 NSArray *valuesOrKeys = [dictionary allKeys/allValues]; (for NSString *str in […]

fosn在ios上的奇怪行为

我试图通过fopen创建一个文件然后写它,但奇怪的事情发生了。 当我将iphone插入USB端口时。 一切正常。 按预期在tmp目录或文档目录中创建文件。 当我插上设备并执行相同操作时,文件没有出现。 我想知道为什么。 我使用fopen来创建文件。 在我的情况下,我应该这样做来创建然后写入文件。 调用是fopen(pcm_output,“wb +”);

在Objective-C代码中使用extern“C”的链接器错误

我正在尝试创建一些可以从iPhone应用程序中的Objective-C和C ++代码调用的实用程序函数。 我有第三方C ++类,无法编译为ObjectiveC ++(。mm)。 我有一个头文件声明我的函数,然后是一个定义它们的.c文件。 我已检查拼写错误三倍,但由于某种原因,我的链接器无法找到任何函数的定义。 这是C辅助函数的标题: #ifndef FILE_LOADER_H #define FILE_LOADER_H #if __cplusplus extern “C” { #endif void * loadDataFromFile(const char * szFilename, bool bDocument); void * loadImageFromFile(const char * szFilename, bool bDocument); void loadMeshFromFile(const char *szFilename, void* pMesh); #if __cplusplus } // Extern C #endif #endif 这是.c文件: #include “FileLoader.h” #include #include #include void […]

转发在Objective-C中声明一个结构

我正在创建一个协议,我正在定义的方法的一个参数是CMTime* 。 我想转发声明CMTime而不是包含它。 但是,我尝试过@class CMTime并且它抱怨它在别处重新定义为不同类型的符号。 文档说这是一个结构。 我已经尝试将其声明为 struct CMTime; 但它仍在抱怨它不知道它是什么。 我有什么想法我做错了吗?

C中这两种typedef样式有什么区别?

我很好奇当typedefing一个枚举或结构时,这里的区别是什么。 这两个块之间在语义上有什么区别吗? 这个: typedef enum { first, second, third } SomeEnum; 还有这个: enum SomeEnum { first, second, third }; typedef enum SomeEnum SomeEnum; 结构相同的交易。 我已经看到两者都在使用,他们似乎都在C或Objective-C中做同样的事情。 是否存在真正的差异,或者只是偏好您可以使用哪种风格?

SEGV_ACCERR是什么意思?

我正在研究一些碰撞信号为SIGSEGV的SEGV_ACCERR。 在搜索SEGV_ACCERR之后,我发现的最接近人类可读解释的是: 对象的无效权限 这在更一般意义上意味着什么? 何时出现SEGV_ACCERR? 关于这个原因有更具体的文件吗?

位移,屏蔽还是位域结构?

我刚开始使用钻头。 我正在尝试使用现有的协议,它可以发送三种不同类型的消息。 类型1是16位结构: struct digital { unsigned int type:2; unsigned int highlow:1; unsigned int sig1:5; unsigned int :1; unsigned int sig2:7; }; 前两位(类型,在我上面的结构中)总是1 0。 第三位highlow确定信号是打开还是关闭,sig1 + sig2一起定义信号的12位索引。 该索引在两个字节之间被分割为0,总是在第7位。 类型2是32位结构。 它有一个2位类型,一个10位索引和一个16位值,在位置27,23,15和7处散布着0。一个位字段结构表示forms如下所示: struct analog { unsigned int type:2; unsigned int val1:2; unsigned int :1; unsigned int sig1:3; unsigned int :1; unsigned int sig2:7; unsigned int :1; unsigned […]

free,dealloc,release和autorelease之间有什么区别?

有人可以解释free() , release , autorelease和dealloc之间的区别吗?

如何为LLVM声明压缩结构(不填充)?

可以告诉GCC它不应该为结构使用填充。 这是使用__attribute__((packed)) 。 typedef struct { uint8_t startSymbol; uint8_t packetType; uint32_t deviceId; uint16_t packetCRC; } PacketData __attribute__((packed)); 但是,最新的Xcode使用LLVM并且无法识别该属性。 如何为LLVM定义压缩结构? 可以在此处找到问题的完整描述 更新我正在使用Xcode 4.5.1 for iOS,它使用Apple LLVM 4.1编译器。 我在上面的代码示例中的Xcode中收到“’packed’属性被忽略”警告。

Objective C版本的explode()?

如果我想将PHP中的部分字符串分解为数组,我有一个漂亮的explode()函数,我只需执行以下操作 $mystring = “HI:THERE:HOW”; $stringarray = explode(“:”, $mystring); 我明白了 $stringarray = ( [0] = “HI” [1] = “THERE” [2] = “HOW” ); Objective C中是否有类似的函数将字符串分解为数组? 谢谢你的帮助!