博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
OC基础第二天
阅读量:6489 次
发布时间:2019-06-24

本文共 2342 字,大约阅读时间需要 7 分钟。

hot3.png

FJMobilePhone.h

#import <Foundation/Foundation.h>

FJMobilePhone : NSObject{

    

    NSString *_brand;//手机牌子

    double _price;//手机价格

    double _screenSize;//手机屏幕大小

    NSString *_color;//手机颜色

    NSString *_owner;//手机主人

    NSString *_number;//手机号码

    NSDictionary *_contacts;//这是一个字典后面会有介绍

    //简单来说字典就是存储键值对的集合。这里保存的是一个号码对应一个手机主人

}

/**初始化方法*/

+ (instancetype)phoneWithBrand:(NSString *) brand owner:(NSString *)owner

                        number:(NSString *)number;

- (instancetype) initWithBrand:(NSString *)brand owner:(NSString *)owner

                        number:(NSString *)number;

/**定义一个手机打电话的方法*/

- (BOOL) call : (NSString *) otherNumber;

/**定义一个手机发短信的功能*/

- (void) sendMessage:(NSString *) message to:(NSString *) otherNumber;


FJMobilePhone.m

#import "FJMobilePhone.h"

@implementation FJMobilePhone

+ (instancetype) phoneWithBrand:(NSString *)brand owner:(NSString *)owner number:(NSString *)number{

    

    return [[self alloc]initWithBrand:(NSString *)brand owner:(NSString *)owner number:(NSString *)number];

}

- (instancetype)initWithBrand:(NSString *)brand owner:(NSString *)owner number:(NSString *)number{

    

    if(self = [super init]){

        _brand = brand;

        _owner =owner;

        _number = number;

        _contacts = @{

@"13799322422":@"鹿晗",

                      @"28774198274":@"大腿",

                      @"37597293729":@"微微",

                      };//这就是字典的用法 前面是键key后面是值value通过key可以找到键

    }

    return self;

}

- (BOOL)call:(NSString *)otherNumber{

    int rate = arc4random() %10 +1;//产生一个110的随意数

    if(rate < 7){

        NSString *otherName = _contacts[otherNumber];//这里的意思是通过otherNumber找到一个otherName

        //字典的索引器语法:通过key找到value,如果给定的key没有对应的value返回nil

        

        printf("%s正在和%s煲电话粥.......\n",[_owner UTF8String],otherName?

               [otherName UTF8String]:[otherNumber UTF8String]);

        //[otherNumber UTF8String]由于printfC语言的语法这里需要把C的字符串转化成OC的字符

        // UTF8String就是把C的字符串转化成OC的字符

        return YES;

        

    }

    return  NO;

    

}

- (void)sendMessage:(NSString *)message to:(NSString *)otherNumber{

    

    NSString *otherName = _contacts [otherNumber];

    printf("%s%s发送短信内容是: %s\n", [_owner UTF8String], otherName? [otherName UTF8String]: [otherNumber UTF8String], [message UTF8String]);

    

}

@end


main.m

#import <Foundation/Foundation.h>

#import "FJMobilePhone.h"

int main(int argc, const char * argv[]) {

    @autoreleasepool {

        FJMobilePhone *phone = [FJMobilePhone phoneWithBrand:@"oppo" owner:@"luhan" number:@"7777777"];

    

        [phone call:@"37597293729"];

        [phone sendMessage:@"I LOVE YOU" to:@"37597293729"];

    

    }

    return 0;

}

程序运行结果截图:

195058_EW5q_2683146.png

转载于:https://my.oschina.net/luhoney/blog/643787

你可能感兴趣的文章
SpringFlux入门(上篇)
查看>>
Bean注解方式知识点1
查看>>
centos7 hive 单机模式安装配置
查看>>
记一次小白在centos下安装nginx
查看>>
swift unowned和weak的使用
查看>>
面向对象设计原则
查看>>
异步编程 101: 是什么、小试Python asyncio
查看>>
10月12日云栖精选夜读:【直击2017杭州·云栖大会】TECH INSIGHT企业迁云实战专场...
查看>>
html中在线预览pdf文件之pdf在线预览插件
查看>>
MongoDB入门篇
查看>>
Java 集合08之 ListLinkedList, ArrayList等使用场景和性能分析
查看>>
短期怎么学会云计算?新手学习云计算的规划
查看>>
支配vue框架之模版语法 v-html
查看>>
英伟达发布超强大新型芯片用于人工智能
查看>>
以太坊社区激励金计划:支持开发者利用去中心化技术改变世界
查看>>
详细精确阐述jsBridge执行流程的文章
查看>>
并发编程导论
查看>>
使用AndroidX + ViewModel + LiveData + DataBinding等组件搭建的MVVM快速开发框架
查看>>
[译] 关于 React Router 4 的一切
查看>>
Python虚拟环境指南2019版
查看>>