转自: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. 精雕细琢 35 套精美的 PSD 图标素材

    设计师总是有独特的创意和精雕细琢的精湛技术,让我们值得去欣赏和借鉴,如梦想天空所表达的:非常感谢那些很有才华的设计师分享它们的劳动成果,让更多的人可以使用他们的创意设计.今天,本文与大家分享35套精美 ...

  2. Hadoop MapReduce程序中解决第三方jar包问题方案

    hadoop怎样提交多个第三方jar包? 方案1:把所有的第三方jar和自己的class打成一个大的jar包,这种方案显然笨拙,而且更新升级比较繁琐. 方案2: 在你的project里面建立一个lib ...

  3. Apache Rewrite常用设置说明

    例子: RewriteEngine on 打开引擎 RewriteRule test.html /test.php [L] RewriteRule test.html?$ /tianqi.php?s1 ...

  4. Django学习系列之Form基础

     Django学习系列之Form基础 2015-05-15 07:14:57 标签:form django 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追 ...

  5. 机器学习----分布问题(二元,多元变量分布,Beta,Dir)

    这涉及到数学的概率问题. 二元变量分布:          伯努利分布,就是0-1分布(比如一次抛硬币,正面朝上概率) 那么一次抛硬币的概率分布如下: 假设训练数据如下: 那么根据最大似然估计(MLE ...

  6. ramips芯片,openwrt安装njit8021xclient

    1.软件安装包 http://pan.baidu.com/s/1tcY2p 解压并通过winscp上传至路由器,利用putty进入控制台,依次输入以下4条命令,每次输入后点一次执行opkg insta ...

  7. How to interact with the Chef Server using the Chef Server API using Shell script

    !/usr/bin/env bash   _chef_dir () { # Helper function: # Recursive function that searches for chef c ...

  8. mysql的登录密码带特殊符号登录不进去的问题

    eg : mysqldump -u root -p)P:9 ${dbname} > $dataPath$filename 当我将数据库的数据每天进行自动导出时,需要带上密码,但 ) 是一个特殊符 ...

  9. 第二百四十八天 how can I 坚持

    无忧无虑好烦恼. 一天天的过得好可怕,太快了. 睡觉,好累. 把我的小叶元宝用棍支起来了,省得他长弯了. 还有把六神给倒了,弄了个小喷壶. 睡觉.

  10. jQuery基础学习7——层次选择器find()方法

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...