循环引用错误

问题描述:

今天在做denizen puzzle的iPad版,Xcode有两个文件报错:

/Users/CouldHll/Desktop/Puzzle/Classes/StartButton.h:16:0 /Users/CouldHll/Desktop/Puzzle/Classes/StartButton.h:16: error: expected specifier-qualifier-list before 'StartLayer'

/Users/CouldHll/Desktop/Puzzle/Classes/StartLayer.h:16:0 /Users/CouldHll/Desktop/Puzzle/Classes/StartLayer.h:16: error: expected specifier-qualifier-list before 'StartButton'

问题分析:

仔细检查了一下,代码没有问题。检查着,突然发现这两个文件是circle reference,两个文件头都互相引用:

#import "StartLayer.h"

#import "StartButton.h"

问题解决:

一个改成@class StartLayer;

一个保持#import "StartButton.h"

一切安逸了。

《杜拉拉3:我在这战斗的一年里》

“势利和实在,其实往往说的是同一种人生态度,只是说的人,一个看了人家的左脸,一个看了人家右脸罢了。”

“做事留一线,日后好见面。”

“一个人只有不断创造出更强的下属,他才能让自己更强。”

“没有被炒过的人生是不完整的人生。”

“王八吃秤砣---铁了心。”

“人的一生应当这样度过,当他回首往事时不因虚度年华而悔恨,也不因碌碌无为而羞愧。”

“人若习惯了无知,就会以为无知是天经地义的;当一个人习惯了尊重,一旦受辱,打击的效果会在他身上加倍放大。”

“命苦不能怨政府,点背不能怨社会。”

在某些 Mac 电脑上使用 Microsoft Windows 时声音可能无法自动切换到耳机

今天发现MacBook Pro在Win7下插耳机没有声音,发现是bug,用了以下的方法无效,期待Boot Camp补丁。

http://support.apple.com/kb/HT3588?viewlocale=zh_CN

摘要

在以下使用 Microsoft Windows 的 Mac 电脑上,将耳机插入 3.5 mm 的耳机插孔时,声音可能无法自动切换到耳机。

  • MacBook Pro(17 英寸,2010 年中)
  • MacBook(13 英寸,2009 年末)
  • iMac(2009 年末)
  • MacBook Pro(13 英寸,2009 年中)及更新机型
  • MacBook Pro(15 英寸,2.53GHz,2009 年中)
  • MacBook Pro(15 英寸,2009 年中)及更新机型

受影响的产品

MacBook Pro (13 英寸, 2009 年中), MacBook Pro (15 英寸, 2009 年中), MacBook Pro (15 英寸, 2.53 GHz, 2009 年中), MacBook Pro (17 英寸, 2010 年中), MacBook Pro (13 英寸, 2010 年中), MacBook Pro (15 英寸, 2010 年中), iMac(21.5 英寸,2009 年末), iMac(27 英寸,2009 年末)

要将声音切换到耳机,请执行以下步骤:

  1. 将耳机插入耳机插孔。
  2. 点按“开始”。
  3. 选择“控制面板”。
  4. 点按“硬件和声音”。
  5. 找到“声音”并选择“管理音频设备”。
  6. 选择“扬声器”;此时会出现一个绿色勾号。
  7. 点按“属性”。
  8. 确保已选择 3.5 mm 插孔并启用设备。
  9. 点按“确定”。

函数返回值为枚举类型引起的错误

问题描述:
今天,做Denizen联手拼图iPad版,- (PlateOrientation)orientationRight读取属性函数中的return [self convertAngleToOrientation:_angleRight];报错:error: incompatible types in return

问题分析:
拆分 return [self convertAngleToOrientation:_angleRight];变为:
PlateOrientation orientation=[self convertAngleToOrientation:_angleRight];
return  orientation;
继续报错: error: incompatible types in assignment
原来问题出在 [self convertAngleToOrientation:_angleRight]上,这个应该返回enum的函数,用枚举接受其值却报错。

问题解决:
enum总是uint的,先用uint接住再转成enum:
uint uintOrientation=[self convertAngleToOrientation:_angleRight];
PlateOrientation orientation=uintOrientation;
return orientation;

PS:调用函数原型:
- (PlateOrientation)convertAngleToOrientation: (uint)vAngle