美文网首页
OC语言day06-11分类练习

OC语言day06-11分类练习

作者: liyuhong165 | 来源:发表于2016-06-19 10:21 被阅读32次

pragma mark 分类练习

pragma mark 概念

/**
 ARC 想适用 MRC的东西 则添加 
 -fno-objc-arc
 
 MAC 想适用 ARC的定向 则添加
  -f-objc-arc
 */

pragma mark 代码

#import <Foundation/Foundation.h>
#pragma mark 类
#import "NSString+GetNSStringsContainsNumberCount.h" // 获取字符串的长度

#pragma mark main函数
int countWithStr(NSString *str);
int main(int argc, const char * argv[])
{
    /*
     已知 一个字符串, 要求找到字符串所有的亚拉伯数字
     @"dasdahsdk1123daskjdhs3"
     */
    
#warning 思想
    /*
//    1. 计算器思想, 定义一个变量 保存结果 \
      2. 遍历字符串, 取出 字符串中所有的字符
    
    // 定义一个变量 记录阿拉伯的数字的个数
    int count = 0;

    NSString *str = @"dasdahsdk1123daskjdhs32";
    // 既然是对象 那么这个对象里面应该有方法可以使用。
#warning characterAtIndex 根据一个字符的索引,返回一个字符(unichar)[unsigned short(unsigned 最高位不作为符号位,返回的数就更大了) 可以存储汉字]
//    unichar c =  [str characterAtIndex:0];
//    NSLog(@"%c",c);
    // 遍历字符串
    for (int i = 0; i<str.length; i++) {
        // 在这里获取每一个字符
        unichar c = [str characterAtIndex:i];
        NSLog(@"%c",c);
        
        // 判断字符是不是数字
        // '0' 字符 如果写 0 会出问题 因为字符串存储的是ASCII码值
        if (c >= '0' && c<= '9') {
            count ++;
        }
    }
    
    NSLog(@"count = %i",count);
     */

#warning 使用main函数的自定义方法
//    int count = countWithStr(@"112dasdashkdh3");
//    NSLog(@"count = %i",count);
    
#warning 为NSString 添加一个countWithStr方法
//    NSString *str = @"dasdahsdk1123daskjdhs32";
//    int count = [NSString countWithStr:str];
//    NSLog(@"count = %i",count);
    
#warning 其他方法获取字符串的阿拉伯数量
    NSString *str = @"dasdahsdk1123daskjdhs32";
    int count = [str count];
    NSLog(@"count = %i",count);
    return 0;
}

/*
// 统计一个字符串里面 包含了多少个阿拉伯数组
int countWithStr(NSString *str)
{
    
    int count = 0;
    for (int i = 0; i<str.length; i++) {
        unichar c = [str characterAtIndex:i];
        NSLog(@"%c",c);
        if (c >= '0' && c<= '9') {
            count ++;
        }
    }
    return count;
}
*/

Person.h //人类
#import <Foundation/Foundation.h>

@interface Person : NSObject

- (void)text;
@end
Person.m
#import "Person.h"
#import "NSString+GetNSStringsContainsNumberCount.h"
@implementation Person

- (void)text
{
    NSString *str = @"1313daksjdhaskdhda1";
    int count = [NSString countWithStr:str];
    NSLog(@"count = %i",count);
}
@end

NSString+GetNSStringsContainsNumberCount.h //字符串的分类
#import <Foundation/Foundation.h>

@interface NSString (GetNSStringsContainsNumberCount)

/**
 根据字符串 来 计算字符串包含了 阿拉伯的个数
 */
+ (int)countWithStr:(NSString *)str;

- (int)count;
@end
GetNSStringsContainsNumberCount.m
#import "NSString+GetNSStringsContainsNumberCount.h"

@implementation NSString (GetNSStringsContainsNumberCount)

#warning 类方法
+ (int)countWithStr:(NSString *)str
{
    int count = 0;
    for (int i = 0; i<str.length; i++) {
        unichar c = [str characterAtIndex:i];
        NSLog(@"%c",c);
        if (c >= '0' && c<= '9') {
            count ++;
        }
    }
    return count;
}

#warning 对象方法
- (int)count
{
    int number= 0;
    // 这里的self 就是str
    for (int i = 0; i<self.length; ++i) {
        unichar c = [self characterAtIndex:i];
        NSLog(@"%c",c);
        if (c >= '0' && c<= '9') {
            number ++;
        }
    }
    return number;
}
@end

相关文章

  • OC语言day06-11分类练习

    pragma mark 分类练习 pragma mark 概念 pragma mark 代码 Person.h /...

  • 第06天OC语言(11):分类练习

    不要等到明天,明天太遥远,今天就行动。 须读:看完该文章你能做什么? 1.什么时候抽取分类,更加提高开发的效率 学...

  • Category与Extension

    Category概述:Category是OC2.0之后添加的语言特性,Category又叫类别,分类等,能够在不改...

  • OC语言-分类&关联对象&扩展

    分类 分类做了什么 声明私有方法: 把分类的头文件放到类的.m中,就满足了类既能使用这个方法,又对外不暴露 分解体...

  • H5移动端的适配以及在移动端显示的视觉偏差

    1.移动端认知 分类原生iOS,编写语言OC/swift安卓,编写语言javaH5 编写的移动端是web网页,简称...

  • OC 语言相关

    引文: 多线程相关 OC 语言相关 内存管理相关 UI视图相关 RunLoop相关 分类 关联对象 扩展 代理 通...

  • 总结:八天学会OC语言(上)

    day1 OC语言day01-01OC的简介(附C语言知识点回顾)OC语言day01-02C和OC的对比OC语言d...

  • OC swizzle方法和分类的加载

    分类category category的介绍 Category是oc2.0添加的语言特性,它的主要作用是在不改变本...

  • 分类、类扩展与继承

    在OC中,扩展一个类的方式有两种,继承和分类。 分类(Category) 概念 分类(Category),是OC中...

  • OC分类

    1.分类的作用? 声明私有方法,分解体积大的类文件,把framework的私有方法公开 2.分类的特点 运行时决议...

网友评论

      本文标题:OC语言day06-11分类练习

      本文链接:https://www.haomeiwen.com/subject/posbdttx.html