Xcode第二个Cocoa程序——交换图片

昨天编了第一个程序,有点小欣喜,今天差点不知道要编什么了,由于刚起步,还不会写那些复杂的计算器之类的程序,况且由于项目需要做视频源的自动切换之类的开发,所以今天先从最基础的做起,做一个包含两个图片框的程序,点击按钮之后能够交换两张图片的位置。

今天不贴代码了,编写方法跟昨天一样,这里要说的是图片的交换的方法。在Cocoa中,图片是NSImage类型的对象,而图片框中的图片对象则是NSImageView.image,所以可以新建一个NSImage对象,用于两幅图片交换时的暂存,姑且将其称为图C。所以整个交换过程如下:

NSImage *C;
C=image1.image;
image1.image = image2.image;
image2.image=C;


今天的编写非常顺利,一遍就编译通过了,运行结果也正常。

总结一下:

1、C++中新建对象需要new指令,且不带星号。而OC中是直接类名 *对象名这样的声明语法,看上去像是指针,应该是开辟了一个新的内存区。

2、今天的代码中为什么没有中括号?什么情况下要中括号?还没查到答案,先把问题扔在这儿。


另外补充一下应用退出方面的代码:

默认情况下,Xcode编译出来的App即便是关闭窗口之后也不会退出,如果希望在关闭最后一个窗口之后程序退出,常用的方法是使用applicationShouldTerminateAfterLastWindowClosed函数,只需在.m文件中添加这一函数:

- (BOOL)applicationShouldTerminateAfterLastWindowClosed:(NSApplication *)sender{
  return YES;
}

函数的意思是如果App最后一个窗口被关闭,是否退出App,返回YES则是关闭。



posted @ 2014-06-26 02:46  mowangmm  阅读(551)  评论(0编辑  收藏  举报