Cocoa China 苹果开发中文站

苹果Mac OS X开发 iPhone开发 Cocoa以及Cocoa Touch

推荐使用Safari浏览器阅读本站

基础知识

Cocoa教学:Windows OOP与Cocoa MVC之对比

封装不封装,这是个问题。 

今天我在看Cocoa开发者邮件列表的时候,看到一个帖子,求助如何在两个View之间互相通信的问题。做Windows程序员的时间长的我都不好意思说了,我意识到,这个问题在我刚刚接触到Mac上的Objective-C时也遇到过。

我现在可以提出这个问题的简化版:“我有一个对话框,获取了一些用户输入的数据。我现在需要从我那个对话框中把这个数据提取出来以供主窗口使用。如何才能从主窗口获取到对话框里的数据呢?”

点击这里阅读全文 »

初学者:介绍NSLog的使用

可能你曾经有过Windows编程的经验,通常在你调试程序的时候,如果希望看到某个中间结果,你会习惯使用MessageBox来显示中间的结果。

有了Cocoa的NSLog,你在写Cocoa程序的时候,就可以无需每次都调用NSAlert来观察中间结果了。

点击这里阅读全文 »

介绍一篇很不错的Objective-C的文章

这篇Objective-C文章的名字叫做《学习Objective-C》,文章篇幅不长,但是已经把几乎所有的Objective-C关键点都逐一介绍了。在介绍的所有的关键点中都带有不长的例子,非常简单易懂。

点击这里阅读全文 »

Objective-C的Initialize初始化方法研究

这篇文章介绍了Objective-C比较底层的内容,主要讲解initialize和init方法的区别。从这篇文章中我们不光可以了解Objective-C在初始化时所做的事情,更可以学习到一些如何研究Objective-C语言内部到底做了什么的方法,这样你也可以自己对更深层次的内容进行探寻。

点击这里阅读全文 »

Objective-C语法快速参考

大部分有一点其他平台开发基础的初学者看到XCode,第一感想是磨拳擦掌,看到Interface Builder之后,第一感想是跃跃欲试,而看到Objective-C的语法,第一感想就变成就望而却步了。好吧,我是在说我自己。

 

如果你和我一样,对苹果相关的开发:Mac OS X或是iPhone有兴趣,但是第一时间看到Objective-C就会头疼并伴有发烧症状的话,疗效比较好的快速治疗方法是阅读本文。大概花二十分钟左右,而且绝不无聊的时间,你就会对Objective-C有那么一点点了解,至少读读例子不会那么头疼了。

 

不过假定你要有那么一点点c++、c#或是java的基础,至少能看到c++、c#或是java的源码,能够大致明白说得是什么。

 

这篇文章不是一篇科技文章,希望你也不要把它当做科技文章来读。文章非常不严谨,但是我相信你能看得懂。

点击这里阅读全文 »

关于Objective-C 2.0 的垃圾收集

Objective-C 2.0最大的增强可能就是垃圾收集了(Garbage Collection)。与“垃圾收集”对应的是传统的引用计数(Reference Count)内存管理形式。

 

使用了垃圾收集意味着大部分情况下这篇文章所介绍的工作你在程序中都不需要做了,系统会自动帮你管理好这些问题。如果你没有阅读过这篇介绍内存管理的文章,请先阅读一下。否则你可能不知道“垃圾收集”说的到底是什么。

 

另外,iPhone的操作系统目前并不支持垃圾收集,如果你希望做iPhone开发或者希望你的程序在未来移植到iPhone,尽量不要在程序中使用垃圾收集。 

点击这里阅读全文 »

Objective-C 2.0增加了一些新的东西,包括属性和垃圾回收。那么,我们在学习Objective-C 2.0之前,最好应该先了解,从前是什么样的,为什么Objective-C 2.0要增加这些支持。

这一切都跟Cocoa内存的管理规则有关系,我们知道,Objective-C中所有变量都定义为指针。指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址,如果使用不当,就会出错或者造成内存的泄露。要了解这些,就需要看看其内存管理的规则到底是什么样的。

这篇文章也应该做为苹果开发工具中提供的性能调试工具Instruments使用前必读知识进行阅读。Cocoa China将在稍后提供Instruments工具的使用方法,以及Objective-C 2.0的详细介绍。

要知道,如果你使用Objective-C 2.0,那么本文描述的大部分工作你都不需要自己去处理了。但是这并不意味着你可以不了解它,相反,只有你对内存管理规则更加了解,你才能更好地使用Objective-C 2.0带来的便利。

点击这里阅读全文 »

小技巧:使用Objective C++并同时使用C++

有些情况下,您希望在程序中同时使用Objectvie C++或者普通的C++,其实这是可以实现的,而且非常方便。

您只需将.m文件名改为ooxx.M(M要大写)或者ooxx.mm,就可以在程序里使用Objective C++或者普通cc++程序,或者在一个文件中和Objective-C同时使用。

将时间格式显示为更易读

通常来说,我们将日期转化为字符串的方法是使用NSDateFormatter,有时候你希望更简单地处理时间,将其转为字符串,比如你希望得到:”December 4, 2007“ 可以用:

 
[[NSDate date] descriptionWithCalendarFormat: @"%B %e, %Y" timeZone: nil locale: nil]
 
修改参数你也可以得到诸如”2007124这种显示格式。
 

Leopard轻松编程:帮你节省代码

注:

这是一篇我很早就想翻译的文章。作者集中介绍了很多Leopard中增加的新内容,对于开发者而言,很多在从前10.4上需要花很大精力,很大代码量但是很有用的东西,在新的Leopard中,可以很轻松地实现。我在这里翻译过来放到Cocoachina,展示给大家,希望能够给大家带来帮助。由于水平有限,如果文章内容有错误的地方,还请指正。

 

目录:

 

- Core Animation 核心动画

- 视图描绘

- 和快速查看协同工作

- 管理多视图(针对自定义的分页控件等)

- 图片或者视图以iPhoto形式的动画表格进行呈现

- 设置你自己的智能组、播放列表、目录

- 在菜单里加入自定义视图

- 菜单增强

- 打印界面

- 全局类型标志

- 像邮件程序一样使用分栏视图

- 将文档图标显示在标题条内

- 类似iPhoto工具条形式的HUD窗口

- 控制窗口的材质、金属形式,并可以控制绘画位置

- Spaces集成

- “不要再提示我”

- 针对不同窗口和程序的Dock图标,包括徽章和数字

- 准确追踪鼠标

- 更多文本格式

- 布局管理器增强

- Safari 3风格的搜索结果

- 自动链接、引用和内建的图片编辑

- 拼写检查

- 去掉按钮中不需要的图片

- 免费图片和图标

- 通过平铺小图片画复杂图形

- 凹进形式的方框

- 内建提供的色彩渐变支持

- 增强的TableViews 和 OutlineViews

- 源头列表

- iTunes 歌曲商店形式的路径显示

- 内建的图片编辑

- 内建的PDF查看和浏览

- 卸载程序包

- 获取内存和处理器信息

- 更简单的优先级序列

- 显示日期

- 字符串编码

- Core Data更有效的表达式

- 脚本支持

- 和iCal以及其他数据协同工作

- RSS 支持

- Interface Builder

 

 

作者:Matt Gemmell

 

正文:

 

做为Cocoa的开发者,每一个新版本的Mac OSX的发布,都需要我们花费时间熟悉它们所提供的新的API和机制。在这个熟悉过程中,一个主要的目标是了解操作系统提供的新的控件和功能。这些功能我们在之前的版本中只能自己用代码去实现,而现在系统自身就提供了相应的调用接口。

点击这里阅读全文 »

一点基础的东西:Objective-C的类型和常量

 Objective-C中有几种数据类型和C不太一样。特此记录。

- id 是一个指针类型,可以指向任何类型的对象

- BOOLchar是一样的,但是做为布尔值使用。

  YES 表示1

  NO 表示0

- IBOutlet 是个没有任何意义的宏,可以忽略。当Interface Builder从.h文件中读取类定义时,这个宏会对其做出一个提示。

- IBActionvoid是一样的,同样仅用作对Interface Builder的提示。

- nilNULL是一样的,我们使用nil而不用NULL是因为我们用来表示对象的指针为空。

 

另外

#import#include是一样的,但是#import可以确保引用的文件只被引用一次。

最新评论

最新讨论