碎片化知识整理

@property (strong,nonatomic)NSMutableArray *cards;

@end

@implementation Deck

-(NSMutableArray *)cards

{

if (!_cards){_cards=[[NSMutableArray alloc]init];

}

return _cards;

}

惰性初始化 惰性初始能提高内存使用效率

-(void)addCard:(Card *)card atTop:(BOOL)atTop

{

if (atTop) {

[self.cards insertObject:card atIndex:0];

}else

{

[self.cards addObject:card];

}

}  

[self.cards insertObject:card atIndex:0] insertObject ...  atIndex..   是在可变数组中插入一个对象,放在下标为 “atIndex:。。”的地方 消息的接受者NSMutableArray,传入参数为元素(id) 和  NSUIntege,没有返回对象;

[self.cards addObject:card];   addObject:  在可变数组后增加一个对象,(位置是在数组的末尾) 消息接受者NSMutableArray,传入参数:元素(id),没有返回对象

-(Card *)drawRandomCard

{

Card * rondomCard =nil;

if ([self.cards count]) {

unsigned index=arc4random() %[self.cards count];

rondomCard=self.cards[index];

[self.cards removeObjectAtIndex:index];

}

return rondomCard ;

}

[self.cards count] 求数组元素个数   消息接受对象是NSArray和子类对象 返回对象为number,没有传入参数

a=arc4random()%x   求x范围类随机一个整数前提是x不能为0   函数

[self.cards removeObjectAtIndex:index]; removeObjectAtIndex:number  剔除可变数组中下标为number的元素。 传入参数为USUInteger 消息的接受者为NSMutableArray,没有返回对象

-(NSString *)conetens

{

NSArray *rankStrings= [PlayingCard rankString];

return [rankStrings[self.rank] stringByAppendingString:self.suit];

}

[rankStrings[self.rank] stringByAppendingString:self.suit]; stringByAppendingString 是两个字符串合并成一个新的字符串 返回为NSString 接受对象为NSString 传入参数为NSString;

-(void)setSuit:(NSString *)suit

{

if ([[PlayingCard validSuits] containsObject:suit]) {

_suit=suit;

}

}

[[PlayingCard validSuits] containsObject:suit] containsObject  检查对象是否包含在数组中  消息接受者为NSArray 传入参数为id 返回为 BOOL

-(NSString *)suit

{

return  _suit ? _suit:@"?";

}

_suit ? _suit:@"?"就等于

if(_suit){

_suit}else

{@"?"}

@implementation PlayingCardDeck

-(instancetype)init

{

self =[super init];

if (self) {

for (NSString *suit in [PlayingCard validSuits]) {

for (NSUInteger rank=1; rank<=[PlayingCard maxRank]; rank++) {

PlayingCard *card =[[PlayingCard alloc]init];

card.rank =rank;

card.suit =suit;

[self addCard:card];

}

}

}

return self;

}

@end

instancetype 表示的是返回和消息的接受者为同一类型;

super 关键字是直接实现超类中的方法;

-(instancetype)init

{

self =[super init];

if (self) {....}

return self;

}是标准的重载的init方法模板,这个方法首先会调用父类的初始化方法。执行父类的初始化方法,使得继承的实例变量能正常初始化,必须将父类init方法的执行结果赋值给self,因为初始化过程改变了对象在内存中的位置(意味着引用将要改变)。

初始化成功,返回值将是非空,通过IF语句可以验证,可以....的代码块位置放入自定义的初始化代码。通常可以在这个位置创建并初始化实例变量。ps 其实还是不是很明白希望后面敲到代码会明白。

- (void)viewDidLoad {

[super viewDidLoad];

// Do any additional setup after loading the view, typically from a nib.

}

- (void)didReceiveMemoryWarning {

[super didReceiveMemoryWarning];

// Dispose of any resources that can be recreated.

}

视图的生命周期。后面讲解

#import "ViewController.h"

@interface ViewController ()

@property (weak, nonatomic) IBOutlet UILabel *flipsLabel;

@property (nonatomic) int flipCount;

@end

-(void)setFlipCount:(int)flipCount

{

_flipCount =flipCount;

self.flipsLabel.text=[NSString stringWithFormat:@"Flip:%d",self. flipCount];

NSLog(@"%d",self.flipCount);

}

IBoutlet表示view 的UILabel 联接到controller上,*flipsLabel的属性改变view的UILabel也会跟着相应的改变

[NSString stringWithFormat:@"Flip:%d",self. flipCount]; 创建一个新的字符串 @"Flip:%d",self. flipCount“  self. flipCount将代替%d出现在字符串内容中。 消息接受对象NSString(注意此方法为类方法,对象接受者为类 非实例) 传入对象 元素(id),返回为新的NSString实例;

#import "ViewController.h"

@interface ViewController ()

@property (weak, nonatomic) IBOutlet UILabel *flipsLabel;

@property (nonatomic) int flipCount;

@end

- (IBAction)touchCardButton:(UIButton *)sender {

//UIImage *cardImage =[UIImage imageNamed:@"back"];

if([sender.currentTitle length]){ [sender setBackgroundImage:[UIImage imageNamed:@"back"] forState:UIControlStateNormal];

[sender setTitle:@"" forState:UIControlStateNormal];

}else

{

[sender setBackgroundImage:[UIImage imageNamed:@"front"] forState:UIControlStateNormal];

[sender setTitle:@"A♠?" forState:UIControlStateNormal];

}

self.flipCount++;

}

IBAction 是用户交互View中动作所引发的一系列方法(产生的结果,比如用户按BUTTON按钮,会弹出另一个对话框,就需引用IBAction)

[sender.currentTitle length] sender.currentTitle 是UIButton的元素属性,getter UIButton 中TItle的内容,得到一个字符串。

length方法是表示字符串字母个数, 消息接受者为字符串,没有参数 ,返回为NSUInteger

[UIImage imageNamed:@"back"] 创造图片 图片名位"back",(首先要导入图片文件夹 改名字为 back 图片就再代码中应用)

[sender setBackgroundImage:[UIImage imageNamed:@"back"] forState:UIControlStateNormal 设置UIButton 背景图片,

并设置状态(规则 forState  一般都是UIControlStateNormal )  消息接受者为UIButton  传入参数为 UImage 和state  没有返回值

时间: 2024-10-14 04:10:09

碎片化知识整理的相关文章

知乎-长期接收碎片化知识有什么弊端?

你所接受的一切信息,构成了你的思维方式. 所以,长期接受碎片信息的后果,就是让你的思维变得狭隘,难以进行复杂的思考. ? 碎片信息通常具备这样的特征: ?它们往往是一些事实的集合而非逻辑 ?它们往往大量简化了推演过程 ?它们往往将多路径简化为单一路径 ?它们往往不够严谨.全面 ? 简而言之,碎片信息为了达到易于习得的目的,通常会显著降低认知成本,最明显的方式就是:将复杂的事物简单化.它们往往只告诉你表面上的东西,却不会告诉你背后的原理,以及它与其他事物之间的联系. ? 我们所说的「知识」,由两部

乱七八糟记一下乱七八糟的碎片化知识

一.GitHub二次上传顺序 检查分支,确定分支 提交到缓冲区                              git add 将缓冲区内容提交到本地仓库     git commit -m 描述上传内容 推送到远程仓库                           git push 原文地址:https://www.cnblogs.com/xyJen/p/11210718.html

长期通过微博、微信、知乎等平台接收碎片化的知识有什么弊端?

"碎片化"是移动互联网时代的大势,虽说一方面可以将这样的趋势理解做"合理运用时间".然而长期接受碎片信息的后果也是有弊端的,即碎片化的信息极其容易被我们遗忘.你以为你得到了很多,但其实你什么都没有得到.希望今天分享的文章对同样碎片化的你们有些用. 分享人:张颖 作   者:Lachel (知乎) 你所接受的一切信息,构成了你的思维方式. 所以,长期接受碎片信息的后果,就是让你的思维变得狭隘,难以进行复杂的思考. 1.碎片信息通常具备这样的特征: 它们往往是一些事实的

长期接受碎片化信息,会有什么后果?

长期接受碎片化信息,会有什么后果? 你所接受的一切信息,构成了你的思维方式.所以,长期接受碎片信息的后果,就是让你的思维变得狭隘,难以进行复杂的思考. 碎片信息通常具备这样的特征: 它们往往是一些事实的集合而非逻辑 它们往往大量简化了推演过程 它们往往将多路径简化为单一路径 它们往往不够严谨.全面 简而言之,碎片信息为了达到易于习得的目的,通常会显著降低认知成本,最明显的方式就是:将复杂的事物简单化.它们往往只告诉你表面上的东西,却不会告诉你背后的原理,以及它与其他事物之间的联系. 我们所说的"

(13)碎片化阅读只会让你变得越来越愚蠢

碎片化阅读正在令你变得越来越愚蠢 昨天下午我坐在回上海的火车上,掏出Kindle准备看<金字塔原理>. 当我开始看这本书的时候有两件非常可怕的事情发生了. 第一件事,我发现自己的大脑竟然像转不动了一样! 这本书的内容并不算过于的晦涩,但我理解起来非常的吃力,有些句子反复读了两三次仍然理解不了,仍然记不住. 可以明显的感觉到,大脑里负责进行复杂阅读和理解的部分像锈住了一样,不管我多么努力,这部分始终转不起来. 第二件事,我发现自己的注意力涣散的可怕! 看了两三段之后不由自主的就跑神了,等我回过神

如何构建自己的知识体系-碎片化学习的骗局

现在年底流行知识跨年,今年毫无例外的知识跨年又刷屏了,其中最出名的莫过于罗振宇的"时间的朋友“跨年演讲及吴晓波的跨年演讲,不瞒大家说,我曾经是吴晓波频道.罗辑思维忠实的读者,每天早上会准时收听罗辑思维的60秒语音及相关文章,也会每周观看吴晓波频道音视频及相关文章,在每次读完相关文章及观看完音视频以后,感觉收货颇多:为此还向自己的父母推荐过,曾经在脑子里还想象过,如果我这样长期的坚持下去,一定会成为一个特别优秀的人:经过自己长时间的学习,确实扩展了自己的知识面,知道了更多的名词,但是感觉整体的认知

碎片化阅读神器-MarginNote电子阅读利器

在这个信息碎片化时代,我们的初衷是想利用更多的碎片时间来吸收更多的信息资源,也在不断的尝试如何抗衡这个输入输出的平衡. https://www.macdown.com MarginNote,它是一款强大的学习者阅读工具.在一个学习应用程序里,你可以突出显示PDF和EPUB,记下,创建思维导图,审查闪存卡,并节省您在不同的应用程序之间无休止地切换. MarginNote作为阅读器使用,在MarginNote中,我可以: 对书籍按照类别做分类阅读书籍并做文字.语音笔记将知识点关联成为思维导图有疑问及

数据库知识整理

关系型数据库知识整理: 一,关系型数据库管理系统简介: 1.1使用数据库的原因: 降低存储数据的冗余度 提高数据的一致性 可以建立数据库所遵循的标准 储存数据可以共享 便于维护数据的完整性 能够实现数据的安全性 1.2基本概念: 对于任何数据库来说,表之间的关联关系存在三种基本的关系类型:一对一,一对多,多对多仅此三种. 目前流行的关系型数据库服务器管理系统有:微软-MS SQL Server.甲骨文-Oracle.IBM-DB2.开源的MySql和PostgreSQL等.(在面试中有被问到过)

DIV+CSS网页布局常用的一些基础知识整理

CSS命名规范一.文件命名规范 全局样式:global.css:框架布局:layout.css:字体样式:font.css:链接样式:link.css:打印样式:print.css: 二.常用类/ID命名规范页 眉:header内 容:content容 器:container页 脚:footer 版 权:copyright 导 航:menu主导航:mainMenu子导航:subMenu 标 志:logo标 语:banner标 题:title侧边栏:sidebar 图 标:Icon注 释:note