iOS开发-开发总结(五)

一:@autoclosure将一段代码块活着一句表达式自动的封装成一个闭包
func logIfTrue(predicate: () -> Bool) {  if predicate() { 

           print("True")
       }
} 

调用

  • logIfTrue({return 2 > 1}) 简写:logIfTrue{2 > 1}
在predicate加上@autoclosure调用的时候就可以省略{}直接使用logIfTrue(2>1)

二:??的定义:
  • func ??<T>(optional: T?, @autoclosure defaultValue: () -> T?) -> T?

三:闭包:
  • ({()->() in
  • })

四:操作符重载:
  • func +(left: Vector2D, right: Vector2D) -> Vector2D { return Vector2D(x: left.x + right.x, y: left.y + right.y)

五:错误-Operator implementation without matching operator declaration

因为没有对操作符进行声明

  • infix operator +* { associativity none precedence 160
  • infix
  • associativity
  • precedence

六 :NSAutoreleasePool实现

    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
    int retVal = UIApplicationMain(argc, argv, nil, nil);
    [pool release];
    return retVal;

七:关于懒加载:

  • OC

 1 @property (nonatomic, strong) NSArray *dataArray;
 2
 3 //重写get方法
 4 - (NSArray *)dataArray
 5 {
 6     if (nil == _dataArray){
 7         _dataArray = [NSArray array];
 8     }
 9     return _dataArray
10 }

  • Swift

你可以这样简单的实现

1 //1.分析 NSArray 是一个闭包的返回值,而这是一个没有参数的闭包
2     lazy var dataArray:NSArray = {
3         return []
4     }()
5
6     //2.也可以写成这样
7     lazy var dataArray:NSArray = {
8         return NSArray()
9     }()

但是我们一般都是这么加载一些数据

 1 //3.从plist文件加载
 2    lazy var dataArray:Array<XWWine> = {
 3             let winePath = NSBundle.mainBundle().pathForResource("wine.plist", ofType: nil)!
 4
 5             let winesM = NSMutableArray(contentsOfFile: winePath);
 6
 7             var tmpArray:Array<XWWine>! = []
 8
 9             for tmpWineDict in winesM! {
10
11                 var wine:XWWine = XWWine.wineWithDict(tmpWineDict as!                 NSDictionary)
12
13                   tmpArray.append(wine)
14             }
15
16             print("我就运行一次")
17
18             return tmpArray
19     }()

八:设置状态栏样式

  • 第一步:在info.plist中添加一个字段:view controller -base status bar 设置为NO
  • 第二步:在一个所有界面都继承的父类里添加:
  1. if (IOS8_OR_LATER) { // 判断是否是IOS8
  2. [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContentanimated:NO];
  3. }

九:实用KVC方式修改文本框(UITextField)内部placeholer的属性(后面我们会说到使用自定义UItextView的方式实现)

textField.placeholder = @"username is in here!";
[textField setValue:[UIColor redColor] forKeyPath:@"_placeholderLabel.textColor"];
[textField setValue:[UIFont boldSystemFontOfSize:16] forKeyPath:@"_placeholderLabel.font"];  

这里是使用了KVC的方式,是不是很简单呢?呵呵!

时间: 2024-10-28 10:28:23

iOS开发-开发总结(五)的相关文章

cocos2d-x ios游戏开发初认识(五) CCsprite精灵类

这次写一下精灵创建的几种类型: 一.通过文件创建: 在原有的基础上添加如下代码: //一.通过文件创建精灵 CCSprite *bg =CCSprite::create("map.png"); CCSize winSize  =CCDirector::sharedDirector()->getWinSize(); //得到屏幕的尺寸 bg->setPosition(ccp(winSize.width/2, winSize.height/2)); this->addCh

从零开始学ios开发(十五):Navigation Controllers and Table Views(中)

这篇内容我们继续上一篇的例子接着做下去,为其再添加3个table view的例子,有了之前的基础,学习下面的例子会变得很简单,很多东西都是举一反三,稍稍有些不同的内容,好了,闲话少说,开始这次的学习. 如果没有上一篇的代码,可以从这里下载Nav_1 1)第三个subtableview:Controls on Table Rows这个例子,我们将为每个table view的每一行添加一个按钮,这个按钮将放在accessory icon的位置(之前我们使用过accessoryType,其实这也是一个

浅谈iOS视频开发

这段时间对视频开发进行了一些了解,在这里和大家分享一下我自己觉得学习步骤和资料,希望对那些对视频感兴趣的朋友有些帮助. 一.iOS系统自带播放器 要了解iOS视频开发,首先我们从系统自带的播放器说起,一.我们可以直接播放视频,看到效果,不然搞了半天还播放不了视频,会让大家失去兴趣.二.其实对于很多需求来说,系统的播放器就能够胜任.简单介绍下 1.MPMoviePlayerController 在iOS中播放视频可以使用MPMoviePlayerController类来完成,具备一般的播放器控制功

20个可以帮你简化iOS app开发流程的工具

这里推荐20个可以帮你简化iOS app开发流程的工具.很多开发者都使用过这些工具,涉及原型和设计.编程.测试以及最后的营销,基本上涵盖了整个开发过程. 原型和设计 有了一个很好的创意后,你要做的不是立刻编程,而是设计UI和创建原型,这样你才能知道app如何运行,根据用户体验需要做哪些调整. App Cooker AppCooker 不仅是一个创建原型的优秀工具,它提供的许多功能还可以帮助你将程序发布到App store中.它集成了Dropbox,Box.net和photo roll,你可以直接

Android WebRTC 音视频开发总结(五)

这几天用WebRTC做了个视频监控的功能,分享出来,供想了解这方面内容的朋友参考. 一.基本模块: 1.视频采集端:相当于是客户端,用来采集视频,只需要发送视频,不需要接收. 2.视频监控端:接收采集端传入的视频数据,相当于监控客户端,不需要发送视频数据给客户端. 3.服务端:负责客户端注册.信令控制.数据包转发.UDP打洞等,支持TCP,UDP连接. 二.环境要求: 1.两台Andorid4.0 以上的手机,分别做采集端和监控端. 2.一台PC 做服务端. 3.PC.手机在同一个局域网内.理论

iOS 游戏开发 博客

1. http://www.cnblogs.com/kesalin/archive/2012/11/10/ios_game_dev_resource.html   ( iOS游戏开发教程) 最近几天仔细了解了iOS游戏开发引擎,常用的cocos2d,Unity引擎,那么Unity是非免费的,而cocos2d则是免费开源的: 最后促使我选择cocos2d的原因有两点: 1.最重要的原因是它对应的开发工具,尤其是 “ParticleDesigner”,粒子系统编辑器,非常的喜欢(需付费$7.99美元

IOS网络开发NSURLSession详解(一)概述

原创blog,转载请注明出处blog.csdn.net/hello_hwc 我的IOS-SDK详解专栏,欢迎关注 http://blog.csdn.net/column/details/huangwenchen-ios-sdk.html 前言: 这个IOS网络编程的系列计划6篇文章,NSURLSession3篇(一篇概述,一篇详细阐述三种task和delegate的使用,一篇阐述授权,证书等内容),网络的基础知识两篇(一篇REST API讲解已经写完了,一篇我会把写博客的过程中遇到的概念总结出来

iOS 视频开发学习

原文:浅谈iOS视频开发 这段时间对视频开发进行了一些了解,在这里和大家分享一下我自己觉得学习步骤和资料,希望对那些对视频感兴趣的朋友有些帮助. 一.iOS系统自带播放器 要了解iOS视频开发,首先我们从系统自带的播放器说起,一.我们可以直接播放视频,看到效果,不然搞了半天还播放不了视频,会让大家失去兴趣.二.其实对于很多需求来说,系统的播放器就能够胜任.简单介绍下 1.MPMoviePlayerController 在iOS中播放视频可以使用MPMoviePlayerController类来完

iOS项目开发基础

  iOS项目开发基础 前沿:整理了一个项目开发基础,涉及到开发初期的必备条件.源码请点击github地址下载. 目录 一.封装网络请求 二.json转model 三.方法顺序 四.文件结构 五.UITableView自动布局 六.UITableViewHeaderFooterView复用 七.计算label内容大小 一.封装网络请求 1.封装get请求 + (void)get:(NSString *)url param:(NSString *)param success:(void (^)(N

iOS蓝牙开发(一)蓝牙相关基础知识

原文链接: http://liuyanwei.jumppo.com/2015/07/17/ios-BLE-1.html iOS蓝牙开发(一)蓝牙相关基础知识: 蓝牙常见名称和缩写 MFI ======= make for ipad ,iphone, itouch 专们为苹果设备制作的设备 BLE ==== buletouch low energy,蓝牙4.0设备因为低耗电,所以也叫做BLE peripheral,central == 外设和中心,发起连接的时central,被连接的设备为peri