CS193P第二次作业心得笔记

880℃ 487评论

学习过 Objective-C 的基础概念之后,想必读者们一定跃跃欲试,想要测试看看自己的实力吧!在第二次作业里面增加了物件导向的练习以及 iPhone 的 MVC 操作,让我们一起来看看吧!

作业 2A -- What the Tool

在上一週的作业中,我们曾经实做过 What the Tool 这个工具程式的前四项功能,而在第二部份的作业中,我们将开始撰写自己的 Objetive-C 类别,并且建立类别的实体、列印相关资讯。

这次要建立的类别是 PolygonShape,也就是多边形的类别。这个类别将会在作业 2B 中被使用在 iPhone 软体开发练习上,所以在设计上要特别用心。

根据作业要求,在 PolygonShape 中会有 6 个 property,分别是:

前三个 property 在物件中会有相对应的变数储存,而后三个则是在使用 property 时的时候透过前面三个变数动态计算出来,并且回传值。要注意的是,作业中有要求要自己实做 setter 方法并且加入一些限制,在作业的公告中有详细的规定。

此外,你也需要宣告、实做以下 init 方法:

- initWithNumberOfSides:sides minimumNumberOfSides:min maximumNumberOfSides:max;

注意,你应该会先设定 minimumNumberOfSides 和 maximumNumberOfSides,最后在设定 numberOfSides,这样才能确定多边形的边数有介于最大值和最小值中间。

此外你也要重新实做通用的 - init 方法,并在方法中呼叫你刚刚建立的 initWithNumberOfSides,并且使用初始值建立一个 5 边的多边形,最大跟最小分别是 3 到 12。

至于 angleInDegrees 和 angleInRadians 这两个 property 所回传的角度计算公式,可以参考 Wikipedia 上的条目 ,而 name 这个 property 所需要回传的名称也一样可以在 另外一个条目 中找到。

你也需要实做-description 方法,範例输出如下:

Hello I am a 4-sided polygonwith angles of 90 degrees .

为了能够确定你有正确的记忆体观念,也要实做 dealloc 方法,并且在物件被从记忆体移除前加入一行 NSLog 作为纪录。

最后,在 What A Tool 的程式当中,加入 PrintPolygonInfo 这个 function,就如同上次作业般一样。记得在档案开始的地方加入:

#import "PolygonShape.h"

而在 PrintPolygonInfo 当中,你需要建立一个 NSMutableArray 并且加入数个 PolygonShape 物件,测试 setter 的限制是否有发挥作用,并且列印出 description 的内容。

这个作业内容略为複杂了点,不过笔者相当鼓励各位能够练习看看,一定可以获得很多收穫。而且此作业实做的 PolygonShape 类别也将在作业 2B 中使用。

作业 2B -- Hello Poly
CS193P第二次作业心得笔记

这个作业以及下次的作业中,我们将撰写一个 iPhone 程式来显示多边形,使用者可以在使用者介面上设定多边形的边数,并且使用 custom view 在 iPhone 上画出对应的多边形的图案。

或许听到这边你已经开始担心这次作业複杂度了,不过别担心,在课程网站上有提供额外的 walkthrouh 讲义下载,也就是一步步的教学以及说明。

在第四次的上课录影当中,最后的三分钟中也有介绍关于 Hello Poly 的架构,以及其相对应的 MVC 架构。

结论

这次的两个作业乡对于上週比起来困难度增加不少,不过却是一个熟悉 Objetive-C 的物件机制和记忆体机的很好机会,也能让我们能够初步的了解 iPhone 程式的 MVC 架构。

两个作业笔者也已经完成,有兴趣的读者,欢迎在这篇文章留言,我会一一寄给各位提供参考。

下次的连载内容将再度回到课堂上,针对第五堂课程的内容做心得整理,还请大家继续支持!

参考资源
上一篇:           下一篇: