Tag: objective c

预处理器时间戳

是否可以通过预处理器宏生成嵌入式Unix时间戳? 例如: #define VERSION_EXPIRE __TIMESTAMP__ 原因是,我有beta版本,我想在编译时生成一个过期时间戳(在一个特殊的构建配置中)。

使用iPad无线传输文件

我有一个iPad应用程序,输出需要上传到远程服务器的PDF文件。 我有什么选择? 是否有iOS的sFTP或FTP实现可以帮助我实现这一目标? 可以使用其他协议吗? 谢谢!

从Objective C调用C

我是客观c&c的新手。 我试图在一个客观的c程序中使用这个随机生成器c库 。 我的理解是,客观c是c的严格超集,所以这应该是可能的。 我的代码编译并运行但我得到了很多警告。 警告:隐式声明函数’mt_seed32′ 警告:函数’mt_lrand’的隐式声明 警告:语义问题:函数’mt_seed32’的隐式声明在C99中无效 警告:语义问题:函数’mt_lrand’的隐式声明在C99中无效 警告:语义问题:不兼容的整数到指针转换使用unsigned int *类型的表达式初始化uint32_t * (aka unsigned int * ) 我没有将C头文件导入到目标c类 – 它只是找到它。 如果我导入它,我会得到重复的方法错误。 C库头文件: extern void mt_seed32(uint32_t seed); extern uint32_t mt_lrand(void); 调用它的代码:[我试过用[self method()]调用它但是崩溃了 mt_seed32(3); uint32_t *i = mt_lrand(); 任何人都可以告诉我如何摆脱这些警告?

将整数转换为hex

我只需要将整数转换为hex。 实际上我有一个char数组,我在其中存储hex值。 int var; var=[self getValue]; char hexValues[5]; hexValues[0]= 0x02; hexValues[1]= 0x04; hexValues[2]= [self getHexFromInt:var]; 现在我认为getHexFromInt()返回一个等于传递的十进制”var”的hex int值。 它不会包含0x ..格式,这就是为什么我认为char数组会接受它作为普通的char。 所以请建议我如何从getHexFromInt()方法返回”0x ..”格式的字符。

如何测量图像的环境光线水平?

我正在寻找一个使用相机来测量拍摄图像时存在的光量的应用程序。 一些条件行为将基于存在多少光线而发生 – 即如果看起来像是黑暗的话,则显示消息“看起来像睡前”。 据我所知,由于曝光和类似的事情,这将是一个非常差的衡量,但它不需要超级准确。 我没有图像处理经验,所以我甚至不知道要问什么,或者什么是可行的。 这可能吗? 做这样的事情有没有C库?

清除尾随0的双倍?

我有一个双倍,它有一个像0.50000的值,但我只想0.5 – 有没有办法摆脱那些尾随0? 🙂

定义一个指向引用相同变量名称引用的指针?

在objective-c中,我真的无法理解这一点: void *x = &x; 我的理解是: 声明一个generics指针(因此类型为void *),指针变量名称为x,并且此指针指向对变量的引用( 应该已经声明 – 但它不是已声明 ),名为x。 对我来说很困惑!

Xcode在程序中提供了3个处理Stray’\ 342’的语法错误

我正在使用Xcode中的Objective-C中的一个简单项目,我得到一些关于以下代码行的错误/错误: if(celsius < −273.15) { NSLog(@"It is impossible to convert temperatures less than −273.15 degrees Celsius, because this is absolute zero, the coldest possible temperature."); } 它实际上只是关于第一行,但我想提供一些背景信息。 有什么建议? 我在这里查了一下,但其他人的错误并没有像我这样简单的代码,虽然看起来他们有一个常见的问题,就是对某些标点符号进行错误的编码,也许? 在我的if语句中,这只是一些语法。 更新: 它看起来好像还显示了2个其他的杂散错误: 流浪’\’210’流浪’\’222′

有条件的宏扩张

抬头:这是一个奇怪的问题。 我有一些非常有用的宏,我喜欢用来简化一些日志记录。 例如,我可以做Log(@”My message with arguments: %@, %@, %@”, @”arg1″, @”arg2″, @”arg3″) ,这将扩展为更复杂的方法调用包括self , _cmd , __FILE__ _cmd __FILE__ , _cmd等等,以便我可以轻松跟踪记录事件的位置。 这很好用。 现在我想扩展我的宏,不仅可以使用Objective-C方法,还可以使用常规的C函数。 问题是宏扩展中的self和_cmd部分。 C函数中不存在这两个参数。 理想情况下,我希望能够在C函数中使用同一组宏,但我遇到了问题。 当我使用(例如)我的Log()宏时,我得到关于self和_cmd未声明的编译器警告(这完全有道理)。 我的第一个想法是做类似以下的事情(在我的宏中): if (thisFunctionIsACFunction) { DoLogging(nil, nil, format, ##__VA_ARGS__); } else { DoLogging(self, _cmd, format, ##__VA_ARGS__); } 这仍然会产生编译器警告,因为整个if()语句被替换代替宏,导致self和_cmd关键字出错(即使它们在函数执行期间永远不会被执行)。 我的下一个想法是做这样的事情(在我的宏中): if (thisFunctionIsACFunction) { #define SELF nil #define CMD nil } […]

ABRecordSetValue返回的CFErrorRef的内存管理

考虑一些涉及error handling的典型CF代码,比如说: ABRecordRef aRecord = ABPersonCreate(); CFErrorRef anError = NULL; ABRecordSetValue(aRecord, kABPersonFirstNameProperty, CFSTR(“Joe”), &anError); 在此代码之后如何处理anError ? 我是否必须保留它,以确保它不会消失,然后再释放它? 或者我已经是主人了,我只需要稍后发布它?