吉他谱-忽然(李志)

这段和弦实在太好听了! 从www.jitapu.com转来, ——————————————————————————- 歌曲名:忽然 歌手/乐队:李志 编配者(转载来源):lyghl66 ——————————————————————————- 1=C 4/4 变调夹夹1品 C G AM EM F 忽然就流出泪来,忽然想要听到她的声音 C DM G 而我却什么话都说不出来 C G AM EM F 是谁在温暖你,有谁会让我觉得这夜晚还有期盼 C DM G 我就会跟着它去远行 C G AM EM F 可是你在哪里,可是明天醒来的第一脸阳光 C DM G 是否,会像梦里一样明亮 C G 幻想朝夕的生活 AM EM F 幻想着你被害怕定格的角落 C DM G 最后,我一个人越走越孤单 C G 幻想朝夕的生活 AM […]

CloudApp

推荐一个Mac下的不错的同步软件,可以方便地在公司和家里把文件放到服务器端,这样无论在哪一边都可以很容易地得到需要地文件。 CloudApp 从这个网址进入 GetCloudApp 注册一个帐号,下载安装客户端之后,运行之。会看到在右上角总多的图标中多了一个“云”的图标。 点击,打开Preferences->Account 输入你的帐号 然后 ….. 把需要上传的文件直接拖上去就搞定了! 另外一个更酷的功能是保存书签。有时候在公司看到一个不错的blog地址,想要回家之后再看看,使用cloudApp就很方便了。 在Safari里使用热键(默认是Ctrl+Alt+Command+U)就把当前页面的地址保存到云端了。当然也可以使用拖放完成这个需求。 刚刚用上CloudApp没多久,说不定还有些未被发现的好东西。 限于Mac平台的话,用户群应该不会太大吧。祝CloudApp能够存活在墙内吧。

DEPAPEPE 的 Night&Day

非常好听的一支吉他曲,清新明快的节奏,相当的给力。 下面的介绍来自Google:Depapepe DEPAPEPE来自优雅浪漫的港都神户,是创造当地街头传奇的双吉它男子组合。他们的音乐是配乐也是流行乐,能够舒缓听众的心灵却又非常时尚 。2002年11月,由德冈庆也及三浦拓也二人合组而成的DEPAPEPE,仅以二把空心吉它就能表现出变化多端的心象风景以及喜怒哀乐。他们以洋溢着青春气息的轻快曲风旋律弹奏出舒缓人心的音乐空间,并从神户到大阪、京都以及东京,随着街头表演的经验累积,DEPAPEPE瞬间开启了知名度及人气!德冈庆也流行且感性的作曲功力,以及三蒲拓也情感纤细且大胆吉它弹奏,DEPAPEPE的组合成为日本乐坛一股跨界的新兴势力!用手指及琴弦歌唱的DEPAPEPE邀请你一起进入这变幻多彩的吉它的世界 刚知道这支组合,也就是这首Night & Day,就在这推荐一下吧Google试听

loadView的用法

UIViewController的loadView 用UIViewController有一段时间了,才发现以前对loadView的理解完全不到位。 假如我们用Xcode新建一个View-based Application,在ViewController.m中加上 – (void) loadView { NSLog(@”loadView Called”); } 再增加viewDidLoad,按照一般的情况,我们会有这样的Code – (void) viewDidLoad { [super viewDidLoad]; UIButton *customButton = [UIButton buttonWith….. …… [self.view addSubView:customButton]; } 现在打开MainWindow.xib,删掉其中的ViewController,并在AppDelegate.m的 – (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions; 里增加ViewController的初始化 viewController = [[XXXViewController alloc] init]; 编译运行就有问题了。Console中不断的输出loadView Called! 仔细的阅读loadView的文档,才知道loadView不是这么用的。 loadView在每一次使用self.view这个property,并且self.view为nil的时候被调用,用以产生一个有效的self.view。这个接口原本是为了让我们自定义view用的。在不被subclass实现的情况下,也就是[super loadView]的效果,应该就是产生了一个有效的view,也就是一个空白的view。 在上面这种情况下,loadView被实现为空(只有一条打印语句),而且我们没有通过XIB初始化ViewController,所以在viewDidLoad被执行时,self.view是为nil的。所以在执行[self.view addSubView:customButton]时,loadView被调用,用来产生一个有效的view,使得self.view不再为nil。罢特,我们错了(-_-!)。我们的loadView什么也没有做,于是就出现了上面的情形,不断的调用一个什么都不做的loadView…. 当然,我们只要在loadView中增加一句[super loadView]就没有问题了。但这并不是Cocoa的设计者所期望的。 loadView仅仅应该在开发者希望自行通过编码而不是Interface Builder定制view的时候被实现,而且不应该在其中调用[super loadView],你的loadView中应该有self.view = …这样的行为。 如果仅仅是想要在当前view上增加一些UIButton或是UILabel,应该在viewDidLoad里去做,此时不要实现自己的loadView。

Invalid Context

按照《IPhone Game Development》开始学习Game Development。 当在一个Game Loop中进行Update和Render时,都需要得到CGContextRef画图形。如果直接调用Update和Render, 在其中调UIGraphicsGetCurrentContext()就会报Invalid Context。 按照文档中的说法,系统会维护一个CGContextRef的栈,而UIGraphicsGetCurrentContext()会取栈顶的CGContextRef 正确的做法是只在drawRect里调用UIGraphicsGetCurrentContext() 因为在drawRect之前,系统会往栈里面压入一个valid的CGContextRef,除非自己去维护一个CGContextRef,否则不应该在其他地方取CGContextRef 对于Game Loop这种设计,应该由drawRect调用Render进行View的重绘,Update只负责修改一些变量,在Render中进行判断和绘制。