1. 使用@property和@synthesize声明一个成员变量,给其赋值是时要在前面加上"self.",以便调用成员变量的setmember方法。

直接调用成员变量并且给其赋值:member=[NSString stringWithFormat:@””];将不执行setmember 方法。

使用self调用成员变量并且给其赋值:self.member=[NSString stringWithFormat:@””];将执行setmember方法。

2.延时函数: [NSThread sleepForTimeInterval:3];

[self performSelector:@selector(machineBallAction) withObject:nil afterDelay:0];

3.实现随机数:srandom(time(NULL));

4. #pragma mark -
      #pragma mark Initialization
     它们告诉Xcode编译器,要在编辑器窗格顶部的方法和函数弹出菜单中将代码分隔开;
注意
     #pragma mark – 的“-”后面不能有空格。
     如果你的标志没有出现在弹出菜单中,比如没有分隔线出现,请在Xcode菜单 “Preferences..”中的 “Code Sense”选项取消选中”Sort listalphabetically”即可。

5.  我们通过发送消息给对象出发特定动作;对象发送某些变化的时候通过回调函数(callback)通知我们。对象在特定事件发生的时候,就会调用对应的回调函数,触发业务逻辑。
     回调函数通过所谓的代理(Delegation)来实现.

delegate使用方法:

@property (assign) <id>xxxDelegate delegate;

正确的使用方法是使用assign属性而不是retain。

之所以对于delegate这类对象使用assign而不是用retain是为了防止循环retain(retain loop)。
     具体原因请移至:http://www.cnblogs.com/kimimaro/archive/2011/09/05/2167576.html

6. 编程习惯:定义Bool类型值时,@property(nonatomic,getter=isSoundOn) BOOL soundOn;

7.手动创建内存自动释放池:

NSAutoreleasePool *pool = [[NSAutoreleasePoolalloc]init];

// TODO

// 向对象发送一条autorelese消息时,就将该对象加入到自己手动创建的内存释放池中。在此方法结束时调用[pool release],将释放添加到该内存池的所有对象.

[pool release];

// 如若在自动释放池pool 调用release方法之后,某对象的retainCount不为0,该对象将继续保持可用。

8.任何基本数据类型(包括char数据类型),可以通过使用NSNumber类根据这些数据类型来创建对象。

    NSNumber *myNumber, *floatNubmer;// long valuemyNumber = [NSNumber numberWithLong:0xabcdef];NSLog(@"%lx",[myNumber longValue]);          // 输出:abcdef// char valuemyNumber = [NSNumber numberWithChar:'X'];NSLog(@"%c", [myNumber charValue]);          // 输出:X// float valuefloatNubmer = [NSNumber numberWithFloat:100.00];NSLog(@"%g",[floatNubmer floatValue]);       // 输出:100

9. 当把某一个对象以AddObject或者初始化的形式加入到Array,Dictionary中时,该对象retainCount将+1。

当把某一个对象以remover的形式从Array,Dictionary移除时,该对象retainCount将-1。

当使用copy 和mutableCopy 产生数组副本时,数组中每个元素的保持计数将+1。

10. 异常:exc_bad_access.

引用对象已经释放,即“魔鬼引用”。与VS中的“未将引用的对象应用到对象的实例”类似。

11. 更新UITableView数据问题:

采用Sqlite3轻量级数据库来存储数据,通过调试发现,数据库中数据已更新,但UITableView并没有更新。

解决方法:performSelectorOnMainThread:@selector(reloaddata) withObject:nil waitUntilDone:YES

但datasource并没有数据,需要重新加载数据。

IOS 小技巧积累(持续更新)相关推荐

  1. 奇技淫巧-STL 库 ACM算法小技巧(持续更新中~~~)

    STL 库中的奇技淫巧 STL 是惠普实验室开发的一系列软件的统称,可以理解为一些容器的集合.STL的目的是标准化组件,这样就不用重新开发,可以使用现成的组件.STL 现在是C++的一部分,因此不用额 ...

  2. JS日常开发小技巧(持续更新)

    前言 整理总结了一些日常开发中的JS小技巧,可以简化代码,使代码看起来更加简洁明了. 一.数组去重 数组去重的方法有很多种,比如:for循环.双重for循环等,思路一般是生成一个新数组,然后遍历原数组 ...

  3. mysql数据库栏目_MySQL的一些小技巧(持续更新) - mysql数据库栏目

    1.巧用RAND()提取随机行 在MySQL中,产生随机数的方法是RAND()函数,可以利用这个函数与ORDER BY子句一起完成随机抽取某些行的功能.它的原理其实就是ORDER BY RAND()能 ...

  4. 实用的powershell小技巧,持续更新……

    文章目录 一.快捷开启`powershell` 1.运行打开 2.直接在桌面打开 3.在指定文件夹下打开 永久修改命令的别名 1.创建配置文件 2.修改配置文件 powershell 是微软开源的sh ...

  5. C#小技巧,持续更新中....

    1.Q:我从其它地方复制代码到.Net的IDE中,没有缩进的格式,怎么处理? 11:41 2007-09-08 A:先将代码复制到IDE中,再从IDE复制,再粘贴到IDE中,缩进格式就出来. 注意:本 ...

  6. WIN10日常使用小技巧(持续更新)

    使用win10时常会遇到一些win7没有的问题,所以专门记录在此,希望能帮到更多人. 写在前面:以应用或者功能展开编号展开. 目录 1. Chrome浏览器设置自动加载Flash插件 2. Chrom ...

  7. echarts图表的一些小技巧(持续更新,自用)

    1.取消echarts右上角功能按钮下载按钮 知己删掉或者注释掉这里 2.echarts统计颜色设置 如果不设置会安默认的颜色来 3.设置头部标题位置 4.折线堆叠导致的数据显示失真与Y轴坐标不对应 ...

  8. 在测试时用到的一些mysql的小技巧(持续更新)

    经常使用的快捷键: 1.ctrl+q 打开查询窗口 2.ctrl+/ 注释sql语句 3.ctrl+shift +/ 解除注释 4.ctrl+r 运行查询窗口的sql语句 5.ctrl+shift+r ...

  9. php实用小技巧【持续更新】

    这是本人开始做项目的时候遇到过的问题还有解决方法 1.eval函数 能把字符串转换成可执行的php代码,如果字符串不是可执行的php代码的话,需要在前面加上@,屏蔽notice 2.array_mer ...

最新文章

  1. 美多商城之用户中心(收货地址2)
  2. java加载不进去_java sql添加不进去
  3. 不用 Notepad++ ,你还有这些更好的选择!
  4. 【控制】影响系统响应的因素
  5. 2.MATLAB安装
  6. 表的插入、更新、删除、合并操作_2_插入含自增列的记录
  7. Jquery插件之ajaxForm
  8. optimized mysql_MySQL解释计划中“Select tables optimized away”的含义
  9. 算法设计之0-1背包问题
  10. jsp的include两种使用方法
  11. SAP License:客户特别总帐统驭科目某天余额取数逻辑
  12. ViewHolder最简洁的写法
  13. 装linux后分区丢失吗,找到了linux分区顺序错乱修复方法
  14. 耳机煲机软件测试工资,耳机煲机有必要吗_耳机煲机正确方法
  15. PPT中导出高分辨率图片的方法
  16. c语言程序怎么实现模块化,【干货】教你如何对一个大的项目进行模块化编程...
  17. 运动目标检测算法ViBe原理学习
  18. Log:Spdlog初探(1)
  19. 2022 年前面试总结与感悟分享
  20. uni-app分分钟解决苹果X以上型号黑线条兼容问题

热门文章

  1. 中国惊现磁悬浮高铁新技术 或将改变运输格局
  2. python几个应用实例
  3. c语言 printf分栏输出,Exce表格分栏打印输出的两种巧妙方法
  4. 恶魔奶爸 A0 英文零基础的自我提升路
  5. pycharm安装后双击打不开
  6. cartographer(8)点云匹配
  7. sql,判断字段是否包含数字字符或者英文字符,translate函数
  8. Unity Shader入门精要--第4 章 学习Shader 所需的数学基础:点和矢量
  9. 用python编写定时自动发送微信消息
  10. 研发出了生产事故,到底要罚钱不?