(2/18)重学Standford_iOS7开发_Xcode_课程笔记
第二课:
1、惰性初始化
-(ObjectType *)example
{
f(!_example) example =[[ObjectType alloc] init]; return _example;
}
直到使用前最后一刻才初始化变量
2、数组字面量格式
@[a,b,c,…,m,n];
3、@synthesize
同时重写属性的setter与getter方法时,需要显式合成,否则编译器默认生成@synthesize example = _example;
4、类方法
+(ReturnType *)example
{
//不能在类方法中使用类属性
//作为工厂方法使用
//一般用于创建实例对象
}
5、对象初始化方法
框架:
-(instancetype)init
{
self = [super init]
if(self)
{
//自定义初始化内容
}
return self;
}
指定初始化方法:
通常默认为公有API,即指定使用的初始化方法,其余初始化方法中必须调用指定初始化方法来完成初始化。无语法格式,通常通过注释说明。同理对一类方法有指定方法。
6、Xcode基本使用
略,详见视频或课件pdf
7、Outlet与Action
UI与Controller的链接,通过Ctrl+Drag实现。
IBAction实际上为void,供Xcode识别,编译器自动忽略。
IBOutlet实际上为标记,供Xcode识别,编译器自动忽略。
#define IBAction void #define IBOutlet
8、NSLog()
C语言函数,用于在控制台打印输出,可用于程序运行时的测试,
(作者说明:在实际编写APP程序时我们并不直接使用NSLog()函数,因为APP打包编译时禁止NSLog()输出,因此我们需要通过预编译在debug版使用NSLog(),而在release版取消NSLog()。可以在pch文件或合适的地方插入如下代码
#if DEBUG
#define yourPrefixLog(...) NSLog(__VA_ARGS__)
#else
#define yourPrefixLog(...)
#endif
然后在程序中需要打印输出的地方可以直接使用yourPrefixLog()替换之前的NSLog()就行了。)
9、作业
a.使用Xcode创建 Matchismo 工程
b.创建并输入之前的4个objective-C类:Card,PlayingCard,Deck,PlayingCardDeck
c.为ViewController添加一个Deck类的私有属性
d.使用惰性初始化上面的属性,将Deck初始化为含有PlayingCard的牌堆
e.实现每次点击牌堆随机翻出牌堆中某张牌
f.不能破坏原有的函数结构
详见https://github.com/NSLogMeng/Stanford_iOS7_Study_Machismo(此次作业答案为课程公布正确答案,后续课程作业无标准答案,作者仅以个人理解解答,欢迎指正)
课程视频地址:网易公开课:http://open.163.com/movie/2014/1/H/R/M9H7S9F1H_M9H7V38HR.html
或者iTunes U搜索standford课程
(2/18)重学Standford_iOS7开发_Xcode_课程笔记的更多相关文章
- (3/18)重学Standford_iOS7开发_Objective-C_课程笔记
第三课: 本节课主要是游戏实现的demo,因此我将把课程中简单的几个编程技巧提取出来,重点介绍如何自己实现作业中的要求. 纸牌游戏实现: ①游戏的进行是模型的一部分(理解什么是模型:Model = W ...
- (1/18)重学Standford_iOS7开发_iOS概述_课程笔记
写在前面:上次学习课程对iOS还是一知半解,由于缺乏实践,看公开课的视频有时不能很好地领会知识.带着问题去学习永远是最好的方法,接触一段时间iOS开发以后再来看斯坦福iOS公开课,又会有许多新的发现, ...
- (8/18)重学Standford_iOS7开发_协议、block、动画_课程笔记
第八课: 1.协议 另一种安全处理id类型的方式如:id <MyProtocol> obj a.声明 //协议一般放于.h文件中或者在类的.h文件中 @protocol Foo <X ...
- (7/18)重学Standford_iOS7开发_视图、绘制、手势识别_课程笔记
第七课: 1.View 一般来说,视图是一个构造块,代表屏幕上一块矩形区域,定义了一个坐标空间,并在其中绘制及添加触控事件等. ①视图的层级关系 一个视图只能有一个父视图,可以有多个子视图 - ( - ...
- (6/18)重学Standford_iOS7开发_控制器多态性、导航控制器、选项卡栏控制器_课程笔记
终于有时间跟新了,两周时间复(yu)习(xi)了5门考试累觉不爱...... ------------------------------------------------------------- ...
- (4/18)重学Standford_iOS7开发_框架和带属性字符串_课程笔记
第四课(干货课): (最近要复习考试,有点略跟不上节奏,这节课的内容还是比较重要的,仔细理解掌握对今后的编程会有很大影响) 本节课主要涉及到Foundation和UIKit框架,基本都是概念与API知 ...
- (9/18)重学Standford_iOS7开发_动画、自动布局_课程笔记
最近开始实习,没多少时间更新了=_= 第九课: 1.上节课demo:Dropit完整实现 https://github.com/NSLogMeng/Stanford_iOS7_Study/commit ...
- (5/18)重学Standford_iOS7开发_视图控制器生命周期_课程笔记
第五课: 1.UITextView @property (nonatomic, readonly) NSTextStorage *textStorage;//注意为只读属性,因此不能直接更改内容,NS ...
- Houdini Python开发实战 课程笔记
P2 + P3 + P4 + P5 - 基础: 1. Houdini中使用Python的地方 2. Textport:可使用cd.ls等路径操作的命令(命令前加%,可在python中使用) 3. So ...
随机推荐
- ubuntu下php开发环境搭建,nginx+(cgi)php5fpm+memcached+xdebug
由于只是开发环境,所以都是选择比较简单的apt-get安装方式 ,但中间也遇到一点问题. 首先安装nginx nginx的安装和配置其实很简单,nginx本身非常轻量级, 直接 sudo apt-ge ...
- 针对IE的CSS hack 全面 实用
.all IE{property:value\9;} .gte IE 8{property:value\0;} .lte IE 7{*property:value;} .IE 8/9{property ...
- 面试题:m个长度为n的ordered array,求top k 个 数字
package com.sinaWeibo.interview; import java.util.Comparator; import java.util.Iterator; import java ...
- hdu10007
题意,很简单,给n个点的坐标,求距离最近的一对点之间距离的一半. 第一行是一个数n表示有n个点,接下来n行是n个点的x坐标和y坐标.实数. 这个题目其实就是求最近点对的距离 #include< ...
- 旧版Xcode下载地址
怕忘记了,做个记号 https://developer.apple.com/downloads/
- 排名第一、第二的OCR软件
排名第一.第二的OCR软件 第一:ABBYY FineReader OCR世界排名第一,在俄罗斯获国际科技大奖奖超过卡巴斯基! 不仅仅只是文字识别,还能表格识别,版面还原,字体识别,文档结构 ...
- Android开源项目发现---ProgressBar 篇(持续更新)
1. SmoothProgressBar 水平进度条 项目地址:https://github.com/castorflex/SmoothProgressBar Demo地址:https://play. ...
- Apache benchmark 压力测试工具
ab 的全称是 ApacheBench , 是 Apache 附带的一个小工具 , 专门用于 HTTP Server 的 benchmark testing , 可以同时模拟多个并发请求. 安装apa ...
- linux VM命令下查找
使用vi编辑器编辑长文件时,常常是头昏眼花,也找不到需要更改的内容. 这时,使用查找功能尤为重要. 方法如下: 1.命令模式下输入“/字符串”,例如“/Section 3”. 2.如果查找下一个,按“ ...
- CH Round #45 能量释放
能量释放 CH Round #45 - alan有一些陷阱 III 题目描述 alan得到一块由个能量晶体构成的矿石,对于矿石中的每一个能量晶体,如果用化学物质刺激某一个能量晶体,就能使它释放能量. ...