文档章节

第02天OC语言(12):匿名对象

lyh2017iOS
 lyh2017iOS
发布于 2017/07/12 00:11
字数 380
阅读 1
收藏 0
点赞 0
评论 0

####一、概念

 匿名 就是没有名字,匿名对象 就是没有名字的对象

####二、code

>>>main.m
#pragma mark 12-匿名对象
#pragma mark 概念
/*
 匿名 就是没有名字,匿名对象 就是没有名字的对象
 */
#pragma mark - 代码
#import <Foundation/Foundation.h>
#pragma mark 类
#import "Person.h"
#import "IPhone.h"

#pragma mark - main函数
int main(int argc, const char * argv[])
{
    
    // 1.有名字的对象
    // 只要用一个指针保存了某个对象的地址,我们就可以称 这个指针未某个对象
    // 称p为Person对象
    Person *p = [Person new];
    p->_age = 12;
    p->_name = @"lyh";
    [p say];
    // 2.没有名字的对象
    // 无论有没有名字, 只要调用 new 方法都会返回对象的地址
    // 每次 new 都会新开辟一块内存空间
    [Person new]->_age = 30;
    [Person new]->_name = @"lll";
    [[Person new] say];
    
    
#pragma 1.匿名对象的应用场景
    // 1.当对象只需要使用一次的时候, 就可以使用匿名对象
    IPhone *phone = [IPhone new];
    [phone brand];
    [[IPhone new]brand];
    
    
    // 3.2 匿名对象 可以作为方法的参数(实参)
    Person *p1 = [Person new];
    [p1 signal:[IPhone new]];
    return 0;
}

>>>Iphone
.h
#import <Foundation/Foundation.h>
@interface IPhone : NSObject
// 打印手机品牌
- (void)brand;
- (void)callWithNumber:(int)number;
@end

.m
#import "IPhone.h"

@implementation IPhone

- (void)brand
{
    NSLog(@"苹果品牌");
}

- (void)callWithNumber:(int)number
{
    NSLog(@"打电话给 %i",number);
}
@end

>>>Person
.h
#import <Foundation/Foundation.h>
#import "IPhone.h"
@interface Person : NSObject
{
    @public
    int _age;
    NSString *_name;
}
- (void)say;
- (void)signal:(IPhone *)phone;
@end

.m
#import "Person.h"

// .h 和 .m 之间的切换 command + control + 上下箭头
@implementation Person
- (void)say
{
    NSLog(@"age = %i,name = %@",_age,_name);
}

- (void)signal:(IPhone *)phone
{
    [phone callWithNumber:12344];
}
@end

© 著作权归作者所有

共有 人打赏支持
lyh2017iOS
粉丝 1
博文 357
码字总数 137380
作品 0
朝阳
JavaScript 30天每日效果图

JavaScript 30天每日效果图 在Github上看到了wesbos的一个Javascript30天挑战的repo,旨在使用纯JS来进行练习,不允许使用任何其他的库和框架,该挑战共30天,我会在这里复现这30天遇到的挑战...

黎跃春
2017/07/19
0
0
Swift4.0基础知识回顾

简单介绍一下Swift Swift 语言由苹果公司在 2014 年推出,用来撰写 OS X 和 iOS 应用程序,Swift语言让应用开发更简单、更快、更稳定,确保最终应用有着更好的质量更多了解Swift可以去《The...

博行天下
2017/12/06
0
0
(一)Block的实质初探

相关文章 (一)Block的实质初探 (二)Block之存储域 NSConcreteStackBlock,NSConcreteGlobalBlock,NSConcreteMallocBlock (三)Block之截获变量和对象 (四)Block之 _block修饰符及其存...

madaoCN
2017/10/21
0
0
快速上手Kotlin

今天是新年上班的第一个周末,很多春节的想法想用文字表达出来,却总是感觉词穷墨尽,无法用语言准备地表达我的想法。我想,大约是迷失了太久,连温情的文字都抛弃了我。新的一年,我会用100...

欧阳锋
2017/02/12
0
0
iOS成员属性和成员变量的区别

一、@property 和@synthesizer 在objective-c 1.0中,我们为interface同时声明了属性和底层实例变量,那时,属性是oc语言的一个新的机制,并且要求你必须声明与之对应的实例变量,例如: 在o...

朝雨晚风
2016/08/12
0
0
编写高质量iOS与OS X代码的52个有效方法(上篇)

第一章 熟悉Objective-C 1. 了解Objective-C语言的起源 Objective-C(以下简称OC)是C语言的超集,相比C语言多了面向对象的特性。OC使用动态绑定的消息结构,换句话说,只有在运行时才会检查...

还是不够辣
2017/04/06
0
0
[Kotlin] 关于lambda,你想知道的都在这里

从Java语言转到Kotlin,最让人头疼的问题恐怕就是lambda表达式了。 lambda,准确的中文翻译是:匿名函数。 不过,在Kotlin语言中本身就有匿名函数的概念,为了区分,我们姑且把它叫做Lambda表...

欧阳锋
2017/11/26
0
0
【iOS】Swift类与结构、存储属性、计算属性、函数与方法、附属脚本等

写了12个Person来复习,不过完成同样的代码需要敲键盘的次数相比OC确实少了很多,这很多应该归功于Swift中不写分号,以及少了OC中的中括号。 一、类与结构体 两者在Swift中差不了多少了 类与...

xn4545945
2014/09/16
0
0
Objective-C基础语法规则教程

Objective-C基础语法规则教程 简介 Objective-C是一种简单的面向对象的计算机语言。Oobjective-C扩展了标准的ANSI C语言。类的语法和设计主要是基于Smalltalk,最早的面向对象编程语言之一。...

FelixSmile
2016/09/18
16
0
OC数据类型 enum NSRange NSPoint NSSize NSRect NSDate N

//------------------------------------------------ //可变的字典 NSMutableDictionary //第一种定义方式 返回一个空的字典 NSMutableDictionary mutableDict1 = [NSMutableDictionary di......

尘埃眠于光年yr
2015/10/15
146
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

全新内存布局Android5 for one x

众所周知Android5.0默认ART模式,运行速度加倍,软件占用内存也加倍,我们one x这种元老机采用旧的内存布局,data空间2g ART模式下安装几个软件也就不够用了。最近逛国外的xda论坛,发现有大...

CrazyManDF
6分钟前
0
0
web3j转账

 web3 转账功能   为了完成以太坊交易,必须有几个先决条件   1、对方的以太坊地址   2、确定要转账的金额   3、自己地址的转账权限   4、大于转账金额的以太币,以太币转账其实就...

智能合约
7分钟前
0
0
10.28 rsync工具介绍 , rsync常用选项, rsync通过ssh同步

rsync远程同步 重点!重点!!重点!!! 例子 • rsync -av /etc/passwd /tmp/1.txt • rsync -av /tmp/1.txt 192.168.188.128:/tmp/2.txt rsync格式 • rsync [OPTION] … SRC DEST • rs......

Linux_老吴
20分钟前
0
0
iis php 环境搭建,非常详细的教程

准备篇 一、环境说明: 操作系统:Windows Server 2016 PHP版本:php 7.1.0 MySQL版本:MySQL 5.7.17.0 二、相关软件下载: 1、PHP下载地址: http://windows.php.net/downloads/releases/ph...

T_star
23分钟前
0
0
Day35 rsync通过服务同步

rsync通过服务同步 rsyncd.conf配置文件详解 port:指定在哪个端口启动rsyncd服务,默认是873端口。 log file:指定日志文件。 pid file:指定pid文件,这个文件的作用涉及服务的启动、停止等...

杉下
28分钟前
1
0
【最新最全】为 iOS 和 Android 的真机和模拟器编译 Luajit 库

编译 Luajit 库,的确是一个挑战。因为官网的教程,在当前版本的 Xcode 和 NDK 环境中,已经不适用了。以前只是编译了适用于真机的 Luajit 库。最近在尝试编译模拟器 Luajit 库,就顺便梳理了...

ios122
28分钟前
0
0
rsync至ssh同步

rsync: 文件同步工具,可实现“增量拷贝”;使用yum安装rsync包 常用选项:-a=-rtplgoD (-r同步目录,-t保持文件的时间属性,-p保持文件的权限属性,-l保持软连接,-g保持文件的属组,-o保持...

ZHENG-JY
34分钟前
0
0
TradingView 学习笔记

#前言 公司最后需要使用TradingView展示K线图走势。由于之前没接触过,拿到文档时一脸蒙逼。还好找到二篇文章+Demo代码,直接改改就行了。 #被批 由于上面的懵懂,有个问题困扰4个小时没解决...

hihubs
34分钟前
0
0
10.28 rsync工具介绍~10.31 rsync通过ssh同步

rsync命令是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件。rsync使用所谓的“rsync算法”来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而...

洗香香
36分钟前
1
0
卷积为什么要旋转180度

参考《最容易理解的对卷积(convolution)的解释》 https://blog.csdn.net/bitcarmanlee/article/details/54729807 这篇博客详细讲解了“卷积”,提及了为什么要反转180度,我简述下。 1.卷积的...

datadev_sh
45分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部