- 浏览: 17677 次
- 性别:
- 来自: 杭州
最新评论
文章列表
OC中需要release 的对象
- 博客分类:
- ios
oc 中凡是 通过 create、copy、retain 的对象都需要release
除了push之外,还有另外一种控制器的切换方式,那就是Modal
任何控制器都能通过Modal的形式展示出来
Modal的默认效果:新控制器从屏幕的最底部往上钻,直到盖住之前的控制器为止
以Modal的形式展示控制器
- (void)presentViewController:(UIViewController *)viewControllerToPresent animated: (BOOL)flag completion:(void (^)(void))completion
关闭当初Modal出来的控制器
- (void)dismissViewControllerAnimated: ...
1.UISwitch
* UISwitch继承自UIControl,因此也能像UIButton一样监听一些事件,比如状态改变事件
* UISwitch可以通过拖线监听状态改变
* UISwitch可以通过addTarget:...方法监听状态改变
- (void)addTarget:(id)target action:(SEL)action forControlEvents:(UIControlEvents)controlEvents;
// 其中controlEvents参数传递的是:UIControlEventValueChanged(值改变事件)
2.监听文本框的文字改变
* 一个文本输 ...
应用程序包:(上图中的Layer)包含了所有的资源文件和可执行文件
Documents:保存应用运行时生成的需要持久化的数据,iTunes同步设备时会备份该目录。例如,游戏应用可将游戏存档保存在该目录
tmp:保存应用运行时所需的临时数据,使用完毕后再将相应的文件从该目录删除。应用没有运行时,系统也可能会清除该目录下的文件。iTunes同步设备时不会备份该目录
Library/Caches:保存应用运行时生成的需要持久化的数据,iTunes同步设备时不会备份该目录。一般存储体积大、不需要备份的非重要数据
Library/Preference:保存应用的所有偏好设置,iOS的Settings ...
property的属性设置
- 博客分类:
- ios
copy : NSString\NSMutableString\block
weak : 代理\UI控件
strong : 其他OC对象
assign : 基本数据类型(int\float)\枚举\结构体
AppDelegate中方法的作用
- 博客分类:
- ios
/**
* app加载完毕的时候调用(一般只调用一次)
*
*/
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
NSLog(@"didFinishLaunchingWithOptions");
return YES;
}
/**
* app失去焦点的时候调用( ...
iPhone会为每一个应用程序生成一个私有目录,这个目录位于:
/Users/sundfsun2009/Library/Application Support/iPhone Simulator/User/Applications下,
并随即生成一个数字字母串作为目录名,在每一次应用程序启动时,这个字母数字串都是不同于上一次。
所以通常使用Documents目录进行数据持久化的保存,而这个Documents目录可以通过:
NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserdomainMask,YES) 得到。
代码如下:
...
1. 开始只有oracle 和access 连接2. 打开Oracle SQL Developer:工具——>首选项——>数据库——>第三方JDBC驱动程序——>添加驱动条目3. 自动加载到目录
// contactVc.title 等价于 contactVc.navigationItem.title
// contactVc.navigationItem.title = [NSString stringWithFormat:@"%@的联系人列表", self.accountField.text];
创建控制器的几种方式
- 博客分类:
- ios
控制器常见的创建方式有以下几种
通过storyboard创建
1、
直接创建
MJViewController *mj = [[MJViewController alloc] init];
2、
指定xib文件来创建
MJViewController *mj = [[MJViewController alloc] initWithNibName:@"MJViewController" bundle:nil];
3、
先加载storyboard文件(Test是storyboard的文件名)
UIStoryboard *storyboard = [UIStoryboard s ...
pch文件作用 和 NSLog函数的处理
- 博客分类:
- ios
/************__OBJC__BEGIN************/
// 里面的所有内容只能用到.m文件中或者.mm
#ifdef __OBJC__
#import <UIKit/UIKit.h>
#import <Foundation/Foundation.h>
#import "MJPerson.h"
#ifdef DEBUG // 调试阶段
#define MJLog(...) NSLog(__VA_ARGS__)
#else // 发布阶段
#define MJLog(...)
#endif
#define ABC 10
...
加快eclipse启动速度
- 博客分类:
- java
-Xverify:none
-Xms512m
-Xmx512m
-Xmn128m
-XX:PermSize=96m
-XX:MaxPermSize=96m
-XX:+DisableExplicitGC
-Xnoclassgc
-XX:+UseConcMarkSweepGC
-XX:+UseParNewGC
共同点
利用通知和代理都能完成对象之间的通信
(比如A对象告诉D对象发生了什么事情, A对象传递数据给D对象)
不同点
代理 : 一对一关系(1个对象只能告诉另1个对象发生了什么事情)
通知 : 多对多关系(1个对象能告诉N个对象发生了什么事情, 1个对象能得知N个对象发生了什么事情)
通知注意 :对象销毁时释放通知
使用xib封装一个view的步骤
- 博客分类:
- ios
1、新建一个xib文件描述一个view的内部结构(假设叫做MJTgCell.xib)
2、新建一个自定义的类
(自定义类需要继承自系统自带的view, 继承自哪个类, 取决于xib根对象的Class)
3、新建类的类名最好跟xib的文件名保持一致(比如类名就叫做MJTgCell)
4、将xib中的控件 和 自定义类的.m文件 进行连线
5、提供一个类方法返回一个创建好的自定义view(屏蔽从xib加载的过程)
6、提供一个模型属性让外界传递模型数据
7、重写模型属性的setter方法,在这里将模型数据展示到对应的子控件上面
通过代码自定义cell(cell的高度不一致)
- 博客分类:
- ios
1.新建一个继承自UITableViewCell的类
2.重写initWithStyle:reuseIdentifier:方法
添加所有需要显示的子控件(不需要设置子控件的数据和frame, 子控件要添加到contentView中)
进行子控件一次性的属性设置(有些属性只需要设置一次, 比如字体\固定的图片)
3.提供2个模型
数据模型: 存放文字数据\图片数据
frame模型: 存放数据模型\所有子控件的frame\cell的高度
4.cell拥有一个frame模型(不要直接拥有数据模型)
5.重写frame模型属性的setter方法: 在这个方法中设置子控件的显示数据和frame
...