转自:http://blog.csdn.net/mars2639/article/details/7352012

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类根据这些数据类型来创建对象。

  1. NSNumber *myNumber, *floatNubmer;
  2. // long value
  3. myNumber = [NSNumber numberWithLong:0xabcdef];
  4. NSLog(@"%lx",[myNumber longValue]);          // 输出:abcdef
  5. // char value
  6. myNumber = [NSNumber numberWithChar:'X'];
  7. NSLog(@"%c", [myNumber charValue]);          // 输出:X
  8. // float value
  9. floatNubmer = [NSNumber numberWithFloat:100.00];
  10. 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. iOS小技巧总结,绝对有你想要的

    原文链接 在这里总结一些iOS开发中的小技巧,能大大方便我们的开发,持续更新. UITableView的Group样式下顶部空白处理 //分组列表头部空白处理 UIView *view = [[UIV ...

  2. iOS开发:小技巧积累

    1.获取全局的Delegate对象,这样我们可以调用这个对象里的方法和变量: [(MyAppDelegate*)[[UIApplication sharedApplication] delegate] ...

  3. iOS开发:小技巧积累2

    http://blog.sina.com.cn/s/articlelist_1935098904_1_1.html .获取全局的Delegate对象,这样我们可以调用这个对象里的方法和变量: [(My ...

  4. iOS小技巧 - 和屏幕等宽的Table分割线

    前言 因为本人也是学习iOS才一个多月,在写程序的过程中经常会遇到一些看似应该很简单,但是要解决好却要知道一点小trick的问题. 因此后面会陆续记一些这类问题,一来加深印象,二来也可以做个备忘录. ...

  5. iOS小技巧:用runtime 解决UIButton 重复点击问题

    http://www.cocoachina.com/ios/20150911/13260.html 作者:uxyheaven 授权本站转载. 什么是这个问题 我们的按钮是点击一次响应一次, 即使频繁的 ...

  6. iOS小技巧3

    将颜色合成图片 将颜色合成图片 +(UIImage *)imageWithColor:(UIColor *)color { CGRect rect = CGRectMake(0.0f, 0.0f, 1 ...

  7. iOS小技巧2

    这段代码是实现了类似QQ空间"我的空间"里面的圆形头像 //圆形的头像 UIImageView * headImage = [[UIImageView alloc]initWith ...

  8. 总有你需要的之 ios 小技巧 (下)

    图片上绘制文字 写一个UIImage的category NSMutableParagraphStyle* paragraphStyle = [[NSParagraphStyle defaultPara ...

  9. IOS小技巧——使用FMDB时如何把一个对像中的NSArray数组属性存到表中

    http://blog.csdn.net/github_29614995/article/details/46797917 在开发的当中,往往碰到要将数据持久化的时候用到FMDB,但是碰到模型中的属性 ...

随机推荐

  1. Delphi RICHEDIT中插入图象

    unit InsRich;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms ...

  2. XTUOJ 1248 TC or CF 搜索

    这个题一眼看上去不会 然后有人说是网络流 然后我就想怎么建图啊,然后不会(是本蒟蒻太垃圾了),肯定有网络流解法 然后去群里问了gdut的巨巨,他说他队友爆搜+剪枝过了(我也是非常的叹服) 然后我也写了 ...

  3. sql基本语句

    ---恢复内容开始--- 查询有几个不同的职位名称: select distinct name from a: group by: 现在有两个表product和sales,字段分别如下: TABLES ...

  4. Oracle数据库管理之创建和删除数据库

    转自:http://supportopensource.iteye.com/blog/678898 一.数据库管理概述 在完成Oracle软件安装后,DBA就应该对组织和管理数据库负责任,其主要任务是 ...

  5. LyX转Word

    写毕业论文是一件非常繁锁的事情,一大堆的图片.公式都要往上贴,有时弄不好就把编号搞错了,有时可能没注意,一不小心字体格式.版面格式又全乱了.怎么办?--其实这只是在word环境下才会有的烦恼. 对于w ...

  6. mvc bundle功能(1)

    现如今都提倡敏捷开发,快速开发,但是再要求速度的同时,还得保证质量!前端我是没办法,毕竟是直接要面向用户的,但是后台,解决方案那就多了,诸如extjs,bootstrap,kendoui,都可以解决. ...

  7. struts2实现文件上传

    Struts2中实现简单的文件上传功能: 第一步:将如下文件引入到WEB_INF/lib目录下面,对应的jar文件可自行下载 第二步:在包test.struts2下建立类UploadFile pack ...

  8. Namespaces(命名空间)

    datastore,Blobstore,memcache一起为应用存储数据.这对于在全球范围内分割数据是有用的.比如,一个应用可以为多个公司服务,每个公司可以看到它自己的隔离的应用实例,没有公司可以看 ...

  9. 介绍Google App Engine

    Google App Engine是一个网络应用托管服务(web application hosting service).所谓网络应用(By web application),我们的意思的可以通过网 ...

  10. poj1001 Exponentiation

    Description Problems involving the computation of exact values of very large magnitude and precision ...