2016年1月

iOS-TOM猫-汤姆猫动画播放-UIImageVIew

iOS-TOM猫-汤姆猫动画播放-UIImageVIew
屏幕快照 2016-01-14 上午8.43.19.png

#import "ViewController.h"

@interface ViewController ()
@property (nonatomic, retain) UIImageView *img;
@end

@implementation ViewController

  • (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    self.view.backgroundColor = [UIColor whiteColor];
    self.img = [[UIImageView alloc] initWithFrame:self.view.frame];

    [self.view addSubview:self.img];

    // [img release];
    self.img.image = [UIImage imageNamed:@"angry
    00.jpg"];
    // 看见按钮
    // 左
    // 小鸟
    [self xiaonian];
    // 爪子
    [self zuoTwo];
    // 响声
    [self xSheng];
    // 右
    // 放屁
    [self fPi];
    // 喝奶
    [self heN];
    // 砸屏
    [self zaiping];
    // 隐藏按钮
    [self anto];
    [self anzhon];
    [self anxiao];
    [self anfootLeft];
    [self anfootRight];
    [self m];
    }

- 阅读剩余部分 -

“快播和百度贴吧同样是一个平台,快播因为纵容在平台上传播淫秽电影而破产,同时其主要负责人也等着被法院宣判。那么,百度凭什么不破产?李彦宏凭什么不被告上法院?”

  请输入图片描述
新浪科技讯 1月12日早间消息,百度出卖血友吧事件继续发酵,网友在知乎发帖继续举报称,除血友吧外,还涉及不孕不育吧、糖尿病吧、癫痫吧等热门疾病吧被引入商业合作的吧主。据知乎网友ytytytyt调查统计,在3259个健康保健类吧中,有近40%的热门疾病吧已被卖。不过百度方面告诉新浪科技:病种吧已不允许引入商业合作。

  不完全统计:40%热门疾病吧被卖

约40%热门疾病吧被卖
  约40%热门疾病吧被卖  血友吧被卖事件后,昵称为ytytytyt的网友在知乎上做了“百度贴吧热门疾病吧情况统计”,并指出甲亢吧、帕金森吧、脑瘫吧、灰指甲吧和牙齿吧等均已被出卖,用以换取商业利益。网友ytytytyt还在统计中称,出卖和合作方式大致分为被野鸡医院承包、被组团承包、被个人承包、广告平台承包和网站平台承包等几种。

各种疾病吧被被野鸡医院承包
  各种疾病吧被被野鸡医院承包  其中,ytytytyt统计分析称,甲亢吧、不孕不育吧、股骨头坏死吧、癫痫吧、高血压吧、漏斗胸吧,脉管炎吧等热门疾病吧被野鸡医院承包;血友吧、帕金森吧、肝病吧,糖尿病吧等被“专家”承包;湿疹吧、牛皮癣吧、恐艾吧、增肥吧、肝病吧、怀孕吧,白癜风吧等被个人承包;另外,脑瘫吧引入了广告平台,牙齿吧则被利益相关网站承包。

- 阅读剩余部分 -

OC-协议代理-模拟return点击事件

main.m

#import <Foundation/Foundation.h>

#import "System.h"
#import "Developer.h"
int main(int argc, const char * argv[]) {

// 协议代理
// 模拟点击环境
Developer *dev = [[Developer alloc]init];
System *sys = [[System alloc]init];
#warning 协议代理4 - 注册代理人
sys.delegate = dev;
// 用户点击return/系统调用方法
[sys returnHandle];

return 0;

}
屏幕快照 2016-01-12 上午9.54.54.png

System.h
#import <Foundation/Foundation.h>
#warning 协议代理3 - 提供给外面实现

@protocol keyBoardHandleDelegate

  • (void)funckionHandle;

@end
@interface System : NSObject
#warning 协议代理 - 提供给外面注册
@property (nonatomic, assign) id delegate;

  • (void)returnHandle;
    @end
    屏幕快照 2016-01-12 上午9.55.04.png

- 阅读剩余部分 -

Objective-C考试-OC考试题-选择题-判断题

Objective-C考试- 蓝鸥3G-OC考试题
※ 选择题(共40题,每题2分)

    1、NSString *str = @“lanou”;
    [str retain];
    [str autorelease];
此时str的引用计数是________。 答案:(D)
    A、0
    B、1
    C、2
    D、以上都不是

    2、@public修饰过的实例变量,怎样使用?答案:(A)
    A、通过指向操作符访问
    B、通过点访问
    C、通过setter、getter方法访问
    D、以上都不对

    3、下列哪个不是面向对象的编程语言。答案:(C)
    A、C++
    B、JAVA
    C、C语言
    D、OC

    4、以下说法不正确的是答案:(A)
    A、nonatomic:提供多线程保护,提高性能,在没有使用多线程的编程中可以选择使用
    B、assign:属性默认值。说明设置器直接进行赋值,针对基础数据类型 (NSInteger,CGFloat)和C数据类型(int, float, double, char)等等
    C、retain:此属性只用于对象类型,将成员对象先进行release,然后将参数retain后赋值给成员对象
    D、copy:此属性只对实现NSCopying协议的对象有效(NSString)。拷贝工作由copy方法执行

    5、@interface Person : NSObject
    @property(nonatomic,retain)NSString * name;
    @end
上面声明一个Person类 Person * per = [[Person alloc] init];
    per.name = [[NSString alloc] initWithFormat:@"张三"];
    NSLog(@"per.name = %d",[per.name retainCount]);
答案:(D)
    A、per.name = -1
    B、per.name = 0
    C、per.name = 1
    D、per.name = 2

    6、对[[NSDictionary alloc] initWithObjectsAndKeys:@"a",@"1",@"b",@"2",@"c",@"3", nil]描述正确的是答案:(B)
    A、该字典有6个元素
    B、该字典有3个元素
    C、value值为@"1" @"2" @"3"
    D、创建不可变字典

    7、下列方法中,可以把字符串的首字母转换成为大写的是: 答案:(A)
    A、- (NSString *)capitalizedString
    B、- (id)objectAtIndex:(NSUInteger)index
    C、- (NSString*)lowercaseString
    D、[foo valueForKeyPath:@”some Member”]

    8、NSDictionary * dic1 = [[NSDictionary alloc] initWithObjectsAndKeys:@"张三",@"name",@"女",@"sex", nil];                        
    NSLog(@"name : %@",[dic1 objectForKey:@“name"]);
打印正确的是:答案:(A)
    A、name : 张三
    B、sex :女
    C、张三:name
    D、女:sex

- 阅读剩余部分 -

你怎样看待360安全卫士的雷电OS导致MIUI无法升级这一事件?

首先,“雷电OS”是不是一个OS。答案:不是。雷电OS是一堆预置应用的合集。---下面更新了一些好玩的证据------另外大家可以随意转载-----转载没问题,但是请不要在标题中同时出现小米(MIUI)和雷电,我只是澄清事实,无意为这两家公司引战。雷电的受害用户不止小米,只是这次360针对小米进行推广,所以显得小米用户比较多。雷电OS安装完成后,除了桌面和几个植入应用外,就是原来的手机系统。我们找一台小米4,做一个实验,安装雷电OS后对比安装之前,手机的电话,联系人锁屏,设置等所有的基本应用依然是MIUI。

- 阅读剩余部分 -

OC-通讯录-分组-删除-判断 重新setter getter

/* 完成以下需求
需求:1、定义 联系人类Contact。实例变量:姓名(拼⾳, ⾸字母大写)、性别、电话号码、住址、分组名称、年龄。 ⽅法:自定义初始化方法(姓名、电话号码)、显示联系⼈信息(重写description方法, 打印所有成员变量)。
2、在main.m中定义字典,分组管理所有联系人。分组名 为26个大写的英文字母。
3、可以添加联系人对象,如果姓名或电话号码为空,添加失败(NSLog错误信息)。添加联系⼈到匹配的分组。
4、删除某个分组的全部联系⼈。
*/

main.n

#if 1
// 创建联系人字典
NSMutableDictionary *contactDic = [NSMutableDictionary dictionary];
// 循环'A'->'Z'
for (char i = 'A'; i < 'Z'; i++) {
    // key
    NSString *key = [NSString stringWithFormat:@"%c", i];
    // Value
    NSMutableArray *arr = [NSMutableArray array];
    // 添加到字典
    [contactDic setObject:arr forKey:key];
}
NSLog(@"%@", contactDic);

- 阅读剩余部分 -

OC-* 实现图书管理系统:数组可以添加、删除可以从数组根据书名查找书籍,并修改书籍的价格

main.m

/* 实现图书管理系统:
 1、使⽤数组管理所有书籍。
 2、数组可以添加、删除。
 3、可以从数组根据书名查找书籍,并修改书籍的价格。
 4、展⽰所有书籍清单(书名)。*/

// 创建 对象
Book *book1 = [Book bookWithBookName:@"YIem" price:20];
Book *book2 = [Book bookWithBookName:@"Bian" price:30];
Book *book3 = [Book bookWithBookName:@"bianyi" price:15];
Book *book4 = [Book bookWithBookName:@"YI" price:35];
Book *book5 = [Book bookWithBookName:@"卞一" price:66];
Book *book6 = [Book bookWithBookName:@"卞" price:23];
// 创建可变数组
NSMutableArray *bookArr = [NSMutableArray array];
// 添加书本
[bookArr addObject:book1];
[bookArr addObject:book2];
[bookArr addObject:book3];
[bookArr addObject:book4];
[bookArr addObject:book5];
[bookArr addObject:book6];
NSLog(@"%@", bookArr);
// 删除书本
[bookArr removeLastObject];
NSLog(@"%@", bookArr);
// 查找书名 修改价格
// 1.遍历数组
for (Book *b in bookArr) {
//判断书名
if ([b.bookName isEqualToString:@"YIem"]) {
// 3.改变价格
b.price = 100;
}
}
NSLog(@"%@", bookArr);
// 清单
for (Book *b in bookArr) {
NSLog(@"%@", b.bookName);
}

- 阅读剩余部分 -

OC-Block-定义一个block,返回值为BOOL,有两个NSString参数。实现:判断字符串是否相等

/*定义一个block,返回值为BOOL,有两个NSString参数。实现:判断字符串是否相等。*/
    

#if 1

    BOOL (^block)(NSString *a, NSString *b) = ^BOOL(NSString *a, NSString *b) {
      //  return [a compare:b];
        return [a isEqualToString:b];
    };
    NSLog(@"是否相等: %d", block(@"asd", @"asd"));

#endif
屏幕快照 2016-01-09 上午11.27.19.png

    /*定义一个block,返回值为NSInteger,有两个参数,一个是NSArray,一个是NSString。实现:判断数组时候包含此字符串,如果包含,返回字符串的下标,如果不包括,返回-1。*/
    
    NSInteger (^block1)(NSArray *arr, NSString *str) = ^NSInteger (NSArray *arr, NSString *str) {
        NSInteger i = 0;
        if ([arr containsObject:str]) {
           // NSLog(@"包含");
     //   NSLog(@"下标是:%ld", [arr indexOfObject:str]);
            i = [arr indexOfObject:str];
            return i;
            
        } else {
            return -1;
        }
        return 0;
    };
    NSArray *strArr = @[@"asd", @"sdd", @"YIem", @"YI", @"ccb", @"Ace"];
    NSString *strStr = @"YIem";
    NSLog(@"%ld",block1(strArr, strStr ));

屏幕快照 2016-01-09 上午11.27.38.png

OC-KVC--就字典中的内容按照key值 对应的写入对象中

.main.m文件

/* 定义Student类
1、属性有age,name,gender; 2、age使⽤用assign,name使⽤用retain,gender使⽤用copy; 3、重写age、name、gender的setter和getter⽅方法。
*/
#if 0

    Student *stu = [[Student alloc] init];
    
    // KVC 间接访问的一种方式
    [stu setValue:@"longlong" forKey:@"name"];
    NSLog(@"%@", [stu valueForKey:@"name"]);
    
    NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys:@"long", @"name", @"m", @"gender", @"23", @"age", @"200", @"id", nil];
    // 重要方法   就字典中的内容按照key值 对应的写入对象中
    [stu setValuesForKeysWithDictionary:dic];
    NSLog(@"%@ %@",stu.name, stu.gender);
    
    

屏幕快照 2016-01-08 下午7.20.28.png

- 阅读剩余部分 -

OC-Block-定义一个block 无返回值 无参数

 // block
    // 定义一个block 无返回值 无参数
    void (^block1)(void) = ^(void) {
        NSLog(@"甜甜");
    };
    // 调用一个block
    block1();
    
    
    NSInteger (^block2)(NSInteger a, NSInteger b) = ^(NSInteger a, NSInteger b) {
        return a + b;
    };
    NSLog(@"%ld", block2(3, 5));
    
    
    // block对类型的匹配要求严格
    BOOL (^block3)(void) = ^(void) {
        return YES;
    };
    

屏幕快照 2016-01-08 下午7.16.31.png

OC-内存管理-重写系统调用的释放方法

// 重写系统调用的释放方法

// 以后在mrc下 如果定义了retian/copy的属性
// 都需要重写dealloc方法 并将其release在此处

  • (void)dealloc
    {
    // getter的autorelease回引起延时减 1
    // [self.name release];
    [_name release];
    [super dealloc];
    }

屏幕快照 2016-01-08 下午7.13.27.png

OC-内存管理-MRC-ARC-alloc retain copy--- release autorelease

    // alloc retain copy  引用计数加 1
    // release autorelease 引用计数减 1
    
    // 当对象被添进collection类型中时 对象引用计数加 1
    // 当对象被移除collection类型中时 对象引用计数减 1
    // 当collection类型的数据被销毁时 所有成员引用计数减 1
    
    NSArray *arr = [[NSArray alloc] initWithObjects:@"a", nil];
    // 引用计数减 1
    [arr release];
    // 注意!!! 谁引用的alloc/retian/copy 谁就进行引用计数减 1
    NSArray *arr1 = [NSArray arrayWithObjects:@"a", nil];
    // 手动将arr1的引用计数加 1
    [arr1 retain];
    // 在未来的某一时刻 系统会自动将引用计数减 1
    [arr1 autorelease];

屏幕快照 2016-01-08 下午7.09.35.png

OC-排序-简单类型对象的排序-复杂类型对象的排序

/*********  方法2 简单类型对象的排序   ************/

#if 0
// 创建排序对象
// 参数1 - 为简单类型对象可填写nil/@"self"
// 为复杂类型对象可填写要进行排序的关键字, 如 按照Person的name成员排序 可填写@"name";
//参数2 - 升序/降序(YES/NO)
NSMutableArray *arrA = [NSMutableArray arrayWithObjects:@"2", @"4", @"6", @"1", nil];
NSSortDescriptor *sortD = [NSSortDescriptor sortDescriptorWithKey:@"self" ascending:YES];
// 排序方法
// 注意参数需要填写数组的类型对象 数组中需要放置描述排序的对象
[arrA sortUsingDescriptors:[NSArray arrayWithObject:sortD]];
NSLog(@"%@", arrA);
#endif

屏幕快照 2016-01-07 下午4.51.41.png

 /*************** 方法2复杂类型对象的排序 ************/

#if 1
Person *per11 = [[Person alloc] initWithName:@"Long" age:22];
Person *per22 = [[Person alloc] initWithName:@"Bian" age:18];
Person *per33 = [[Person alloc] initWithName:@"YI" age:20];

NSMutableArray *arrP = [NSMutableArray arrayWithObjects:per11, per22, per33, nil];
NSSortDescriptor *sortD = [NSSortDescriptor sortDescriptorWithKey:@"age" ascending:YES];// 年龄排序
[arrP sortUsingDescriptors:[NSArray arrayWithObject:sortD]];
for (Person *peraa in arrP) {
    NSLog(@"%@ %ld", peraa.name, peraa.age);
}

#endif

屏幕快照 2016-01-07 下午4.52.04.png

Person.h
Person.m 对象的参考代码请点击下面链接

Person.h Person.m 代码

Title - Artist
0:00