- 浏览: 224740 次
- 性别:
- 来自: 上海
-
最新评论
-
15197442045:
求demo,谢谢
IOS 后台执行代码(voip socket) -
15197442045:
我用了你这种方式,还是不能后台运行~~~~~
IOS 后台执行代码(voip socket) -
wlpych:
这个m_socket,从哪获得啊,什么方法?用的pjsip。求 ...
IOS 后台执行代码(voip socket)
文章列表
UIRequiresPersistentWiFi 在程序中弹出wifi选择的key(系统设置中需要将wifi提示打开)UIAppFonts 内嵌字体(http://www.minroad.com/?p=412 有详细介绍)UIApplicationExitsOnSuspend 程序是否在后台运行,自己在进入后台的时候exit(0)是很傻的办法UIBackgroundModes 后台运行时的服务,具体看iOS4的后台介绍UIDeviceFamily array类型(1为iPhone和iPod touch设备,2为iPad)UIFileSharingEnabled 开启itunes共享documen ...
scroll view 原理
在滚动过程当中,其实是在修改原点坐标
当手指触摸后, scroll view会暂时拦截触摸事件,使用一个
计时器,假如在计时器到点后,没有发生手指移动事件,
那么,scroll view发送tracking events
UITableView 详细讲解
- 博客分类:
- iphone基础开发
UITableView 详细讲解
DataTable = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, 320, 420)];
[DataTable setDelegate:self];
[DataTable setDataSource:self];
[self.view addSubview:DataTable];
[DataTable release];
二、UITableView各Method说
//Section总数
- (NSArray *)sectionIndexT ...
iOS 控制台提供这种机制,如果你选择 debug 模式,在程序 crash 之后,在控制台输入 bt,就可以显示 crash 堆栈
一、iOS应用程序状态机一共有五种状态:1. Not running:应用还没有启动,或者应用正在运行但是途中被系统停止。2. Inactive:当前应用正在前台运行,但是并不接收事件(当前或许正在执行其它代码)。一般每当应用要从一个状态切 ...
如何使应用被切到后台,应用中的网络连接仍然接收数据并维持存活(像QQ iphone 一样);
其实按 IOS官方文档一步一步做就可以实现上述功能;
这里主要说一下我按文档遇到的问题,以及将原来的C/C++程序(主要是网络层)简单的修改一下就可以支持 IOS后台运行的方法.
1.在 xxxx Info.plist 添加 以支持 后台运行
<key>UIBackgroundModes</key>
<array>
<string>voip</string>
</array>
2.在 applicationDidEnterBack ...
使用core text输出文本
- 博客分类:
- iphone基础开发
在ios中,进行文本样式设计目前有2种方式: UIWebView ,core text
下面我将通过一个例子来讲述一下如何使用coretext来进行文本样式的添加。
本文章参考:
http://web.archiveorange.com/archive/v/nagQXJDPDGVNz9LFLmSK
http://www.cocoanetics.com/2011/01/befriending-core-text/
首先,进行创建一个UIView的子类,并实现如下代码:
- (void)drawRect:(CGRect)rect {
// Drawing code.
//创建要输出的字符串
NSSt ...
+ (NSString *)pathWithComponents(NSArray *)components
根据components中的元素来构建路径.
- (NSArray *)pathComponents
解析路径,返回构成路径的各个部分.
- (NSString *)lastPathComponent
提取路径中的最后一个组成部分
- (NSString *)pathExtension
从路径中最后一个组成部分中提取扩展名
- (NSString *)stringByAppendingPathComponent(NSString *)path
将path添加到现有路径末尾
- (NSStr ...
iphone开发资源汇总(转载)
- 博客分类:
- iphone基础开发
如何用Facebook graphic api上传视频:
http://developers.facebook.com/blog/post/532/
Keychain保存数据封装:
https://github.com/carlbrown/PDKeychainBindingsController
对焦功能的实现:
http://www.clingmarks.com/?p=612
自定义圆角Switch按件:
https://github.com/domesticcatsoftware/DCRoundSwitch
弹出窗口For iphone and ipad:
https://gith ...
在数字键盘上添加button
- 博客分类:
- iphone基础开发
在数字键盘上添加button:
//定义一个消息中心
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil];
//addObserver:注册一个观察员 name:消息名称
- (void)keyboardWillShow:(NSNotification *)note {
// create custom button
UIButton *doneBut ...
平时积累
- 博客分类:
- iphone基础开发
NSStirng去除空格
[someStr stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
替换NSString中的回车 空格 或者 \n
stringElementValue = [stringElementValue stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
获取info.plist文件中的值:
[[NSBundle mainBundle] obj ...
iOS 支持多个层次的多线程编程,层次越高的抽象程度越高,使用起来也越方便,也是苹果最推荐使用的方法。下面根据抽象层次从低到高依次列出iOS所支持的多线程编程范式:
1, Thread;
2, Cocoa operations;
3, Grand Central Dispatch (GCD) (iOS4 才开始支持)
下面简要说明这三种不同范式:
Thread 是这三种范式里面相对轻量级的,但也是使用起来最负责的,你需要自己管理thread的生命周期,线程之间的同步。线程共享同一应用程序的部分内存空间, 它们拥有对数据相同的访问权限。你得协调多个线程对同一数据的访问,一般做法是在访问之前加锁, ...
1: 主线程修改了数据库的某一条记录,但是子线程没有发生变化,反过来一样的问题。这种情况一般是发生在app有多个NSManagedObjectContext,两个线程分别对其进行了读写操作。
2: 有时候程序会莫名其妙的crash掉,这个有很多原因:
a: 有时候是因为两个线程同时读写数据库中的同一条记录。
b: 有时候根本找不到是哪里的原因。
这两种情况一般是发生在app只有一个NSManagedObjectContext,两个线程都对其进行了读写操作。
在实际的开发当中,我遇到了各种各样的问题,如果是多线程操作数据库的话,个人建 ...
respondsToSelector
- 博客分类:
- iphone基础开发
-(BOOL) isKindOfClass: classObj 用来判断是否是某个类或其子类的实例
-(BOOL) isMemberOfClass: classObj 用来判断是否是某个类的实例
-(BOOL) respondsToSelector: selector 用来判断是否有以某个名字命名的方法(被封装在一个selector的对象里传递)
+(BOOL) instancesRespondToSelector: selector 用来判断实例是否有以某个名字命名的方法. 和上面一个不同之处在于, 前面这个方法可以用在实例和类上,而此方法只能用在类上.
-(id) performSelect ...
GCD和块对象介绍
- 博客分类:
- iphone基础开发
GCD的核心,是一些全局并发队列,它们可以被用dispatch_get_global_queue函数访问:
dispatch_queue_t dispatchQueue =
dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_LOW, 0);
方法的第一个参数是调度队列的优先级。第二个参数保留,当 ...