- 浏览: 545414 次
- 性别:
- 来自: 北京
-
文章分类
最新评论
-
landerson:
明显就有要求的嘛
ANDROID轻量级JSON序列化和反序列化[转] -
jimode2013:
很不错,就是需要这个方法
多个UIViewController使用addSubView,第二个 UIViewController 不响应旋转[转] -
w11h22j33:
...
[转]NSMutableArray中的自动释放对象让我郁闷了一整天 -
w11h22j33:
UILabel* label = [[UILabel a ...
Iphone开发 -
w11h22j33:
http://mobile.51cto.com/iphone- ...
获得通讯录中联系人的所有属性[转]
图片如何存入 iPhone 本地 Documents 的方法
在 UIButton 的 setImage 方法里添加一张图片,以下代码可将图片存入本地的 Documents 下
- NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
- NSString *documentsDirectory = [paths objectAtIndex:0];
- NSString *savedImagePath = [documentsDirectory stringByAppendingPathComponent:@"savedImage.png"];
- //also be .jpg or another
- UIImage *image = imageView.image; // imageView is your image
- NSData *imageData = UIImagePNGRepresentation(image);
- //UIImageJPEGRepresentation(image)
- [imageData writeToFile:savedImagePath atomically:NO];
流程大概如下:
1. 创建一个线程
- [NSThread detachNewThreadSelect:@selector(BeginThread)
- toTarget:selft
- withObject:nil];
2.线程里做两件,一件是后台处理耗时间的活(dosomethinglongtime),另一件是更新UI(UpdateUI)
- -(void) BeginThread{
- [self performSelectorInBackgroud:@selector(dosomethinglongtime)
- withObject:nil];
- [self perfomSelectorOnMainThread:@selector(UpdateUI)
- withObject:nil
- watUntilDone:NO];
- }
3. 那UpdateUI的数据怎么来呢?
- -(void)dosomethinglongtime{
- // 修改共享变量 varProgress, varText等等
- }
- -(void)UpdateUI{
- // 获得共享变量 varProgress, varText等等, 显示在界面上
- }
4.这样就完成了一个大概的流程,但是UpdateUI里不能用while(1),不然主线程会堵在UpdateUI的函数里,怎么办呢? Google了一个方法, UpdateUI的方法做了一下修改
- -(void)UpdateUI{
- // 获得共享变量 varProgress, varText等等, 显示在界面上
- if(!finished)
- [NSTimer scheduledTimerWithTimeInterval:0.2
- target:self
- selector:@selector(UpdateUI)
- userInfo:nil repeats:NO];
- }
这样的意思, 如果没线程没结束,过0.2秒再回到这个函数更新界面, 如此循环, 直到结束.
以上IPhone多线程编程的一种方法, 下一篇就讲一下用NSOperation和NSOperationQueue来实现.
[IPhone开发]发送Http请求(POST GET)的方法
我们知道Http有Get和Post两种方法,我们分开说吧.
另注: 今天讲的方法是同步的请求, 异步的方法我还没试过, 不知道有没有使用异步的需求, 有的话于发上来和大家分享.
1.Get方法
1.1 使用NSMutableURLRequest
- NSURL* url = [NSURL URLWithString:@"http://aminby.net"];
- NSMutableURLRequest* request = [NSMutableURLRequest new];
- [request setURL:url];
- [request setHTTPMethod:@"GET"];
- NSHTTPURLRequest* response;
- NSData* data = [NSURLConnection sendSynchronousRequest:request
- returningResponse:&response error:nil];
- [NSString* strRet = [[NSString alloc] initWithData:data encoding:NSUTF8String];
- NSLog(strRet);
- [strRet release];
1.2 使用NSString
- / options有两个枚举,NSMappedRead这个不懂, NSUncachedRead是不缓存
- [NSData dataWithContentsOfURL:(NSURL *)url
- options:(NSUInteger)readOptionsMask
- error:(NSError **)errorPtr]
- // 或者
- [NSData dataWithContentsOfURL:(NSURL *)url];
1.2和1.3的方法是缺点是没办法知道response的status,一般是返回200-299之间的数值代表请求成功.我们可以依照这个code来做数据处理, 如果对地址存在很有把握,就可以使用后两种简单的GET方法.
今天查了一下手册,发现NSArray NSDictionary 也有xxxxWithContentsOfURL的方法, 这两个我还没用过, 应该是跟NSData和NSString一样,但具体怎么用我还不清楚.
2.Post方法
2.1 使用NSMutableURLRequest
- NSURL* url = [NSURL URLWithString:@"http://aminby.net"];
- NSMutableURLRequest* request = [NSMutableURLRequest new];
- [request setURL:url];
- [request setHTTPMethod:@"GET"];
- [request addValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
- [request setHTTPBody:@"some param"];
- NSHTTPURLRequest* response;
- NSData* data = [NSURLConnection sendSynchronousRequest:request
- returningResponse:&response error:nil];
- [NSString* strRet = [[NSString alloc] initWithData:data encoding:NSUTF8String];
- NSLog(strRet);
- [strRet release];
iphone图片等比缩放
UIImage *img = imgView.image;
int h = img.size.height;
int w = img.size.width;
if(h <= 320 && w <= 480)
{
imgView.image = img;
}
else
{
float b = (float)320/w < (float)480/h ? (float)320/w : (float)480/h;
CGSize itemSize = CGSizeMake(b*w, b*h);
UIGraphicsBeginImageContext(itemSize);
CGRect imageRect = CGRectMake(0, 0, b*w, b*h);
[img drawInRect:imageRect];
imgView.image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
}
[iOS开发必备工具之]图片的异步加载与图片缓存
http://blog.csdn.net/ipromiseu/article/details/6595367
http://blog.csdn.net/ipromiseu/article/details/6595337
发表评论
-
iOS App性能优化
2014-01-03 11:23 1727http://www.hrchen.com/2013/05/ ... -
iOS多线程编程Part 3/3 - GCD
2014-01-03 11:21 1676http://www.hrchen.com/2013/07/ ... -
iOS多线程编程Part 2/3 - NSOperation
2014-01-03 11:20 4577http://www.hrchen.com/2013/06/ ... -
iOS多线程编程Part 1/3 - NSThread & Run Loop
2014-01-03 11:17 7150http://www.hrchen.com/2013/06/ ... -
iOS移动网络环境调优那些事[转]
2014-01-02 17:10 2943http://xiangwangfeng.com/201 ... -
生成APNS Service证书的步骤[转]
2013-05-23 09:19 5711要进行推送服务的第一件事就是获取推送证书。它用来对你通过SS ... -
xcode 环境,多工程联编设置【转】
2013-02-28 21:59 9224http://blog.csdn.net/vienna_zj ... -
干掉你程序中的僵尸代码【转】
2012-12-22 11:05 994随着万圣节越来越流行,我感觉有必要跟大家讨论一下一个 ... -
一个文本框搞定信用卡相关信息的输入[转]
2012-12-22 11:03 1168http://beforweb.com/node/134 ... -
【转】深度技术分析“为什么ios比android流畅”
2012-09-23 19:41 1450原文 Andorid更新了一个版本又一个版本,硬 ... -
Iphone开发
2012-09-17 22:46 12301. NSClassFromString 这个方法 ... -
HowTo: Install iPhone SDK 2.0 – 3.1 for XCode 3.2[转]
2012-09-06 09:00 1243原文链接 So… you’ve installe ... -
Xcode 中设置部分文件ARC支持[转]
2012-08-03 10:57 1751ARC是什么 ARC是iOS 5推出的新功 ... -
xcode4 设置调试错误信息小结【转】
2012-07-19 14:37 1831方案1:NSZombieEnabled 先选中工程, ... -
Finding iPhone Memory Leaks: A “Leaks” Tool Tutorial【转】
2012-07-19 14:36 1285Finding iPhone Memory Lea ... -
[Cocoa]XCode的一些调试技巧【转】
2012-07-19 14:35 1227XCode 内置GDB,我们可以在命令行中使用 GDB ... -
[IPhone]如何使用Leak检查内存泄漏[转]
2012-07-19 14:34 1271简介 在IPhone程式开发中,记忆体泄漏(内存泄漏)是 ... -
获得通讯录中联系人的所有属性[转]
2012-06-21 14:04 1642获得通讯录中联系人的所有属性 ,看代码: ABAdd ... -
多个UIViewController使用addSubView,第二个 UIViewController 不响应旋转[转]
2012-06-20 23:51 16455------------------------------- ... -
shouldAutorotateToInterfaceOrientation 不触发或者不执行的问题[转]
2012-06-20 22:58 1478今天遇到一个很郁闷 ...
相关推荐
3. 在Xcode中打开Instruments,选择Time Profiler模板,运行应用并分析性能数据,找出运行时无用的代码段。 4. 检查编译器警告,特别是关于`dead_code`的警告,并决定是否删除相关的代码。 在分析和优化过程中,...
### 25条iOS代码编写技巧与建议 #### 1. 使用ARC管理内存 - **ARC简介**:ARC(Automatic Reference Counting),即自动引用计数,是自iOS 5开始引入的一种内存管理机制。ARC的主要目的是自动化管理Objective-C...
《关灯游戏IOS代码》是针对iOS平台开发的一款智力挑战应用,它基于经典的“关灯”游戏机制,玩家需要通过一系列操作使屏幕上的所有灯光达到指定状态,通常是全部关闭,以完成关卡并进入下一阶段。这个游戏不仅锻炼了...
例如,通过`numberOfSectionsInTableView`返回表格的段数,`tableView:numberOfRowsInSection:`返回每段中的行数,`tableView:cellForRowAt:`方法则用于为每一行创建并配置UITableViewCell。 对于自定义...
以上是iOS计算器源代码的主要知识点,通过深入研究和理解这段代码,开发者可以提升自己的iOS编程技能,特别是在处理复杂计算逻辑和用户交互方面。同时,这也是一个很好的学习如何在iOS平台上创建自定义组件的例子。
Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时...
5】遵循一致的编码风格,保持团队协作的高效性。说明:团队合作中,统一的编码风格能够...以上是iOS软件代码规范的主要内容,遵循这些原则和规范,能够提升代码质量,促进团队协作,并为项目的长期维护打下坚实基础。
"iOS崩溃代码定位分析工具"是一个关键的资源,它专门用于处理dSYM文件,帮助开发者迅速定位到导致崩溃的代码行。dSYM文件是苹果为调试目的生成的一种特殊文件,包含了应用的二进制代码的调试信息。 首先,我们要...
在iOS开发中,相册展示是一项常见的功能,用于在应用程序中显示用户的照片或者从系统相册中选择图片。本项目提供了这样一个实现,标题为...通过学习和理解这段源代码,开发者可以提升自己在iOS应用开发中的综合能力。
【标题】"AStarDemo IOS游戏代码_ios源码"是一个关于iOS游戏开发的项目,主要展示了A*寻路算法的应用。A*算法是路径搜索领域的一种高效算法,常用于游戏中的角色移动、导航系统或者地图路径规划。在这个项目中,...
这段代码首先创建了一个256位的密钥,然后使用随机生成的nonce(初始化向量)进行加密。`seal`方法会返回一个组合了密文和认证标签的数据结构,可以用于解密时验证数据的完整性和安全性。 解密过程如下: ```swift...
这个名为“iOS录音代码”的资源包,很可能包含了实现这一功能的相关代码示例。在iOS中,录音操作主要依赖于AVFoundation框架,这是一个强大的多媒体处理框架,可以处理音频和视频内容。 首先,要开启录音功能,你...
在iOS开发领域,入门的第一步通常是创建一个"Hello, World!"的应用程序,它标志着开发者对新平台的理解和实践的...通过学习和理解这段源代码,初学者可以逐步掌握iOS开发的关键技术,并为更复杂的项目打下坚实的基础。
这个"iOS metal 示例代码"是官方提供的一个实例,旨在帮助开发者了解如何利用Metal引擎来实现复杂的动画效果。在本文中,我们将深入探讨Metal的关键特性以及如何在实际项目中应用这些特性。 首先,Metal的核心在于...
- **泛型**:Swift支持泛型编程,可以在不牺牲性能的情况下编写更加灵活和重用的代码。 - **协议**:协议定义了一组规则,任何遵循该协议的类型必须实现这些规则。 - **闭包**:Swift中的闭包是一种没有名字的函数,...
### 关于iOS代码注释的统一规范 在iOS开发中,代码注释是维护和管理项目不可或缺的一部分。本文档旨在介绍一套iOS应用开发中的代码注释规范,这不仅有助于提高团队内部的协作效率,还能确保代码的清晰度和可读性。 ...
有些人可能希望等待一段时间,待苹果解决初期用户遇到的问题,也就是通常所说的“观望期”。这样可以避免遇到可能导致设备运行不稳定的新问题。 9. **开发者与公共测试版**:在正式版发布之前,Apple会提供开发者...
这段代码创建了一个新的`UILabel`实例,设置其文本为"Hello, World!",并将其添加到视图控制器的视图上。 4. **运行应用**:点击Xcode顶部的运行按钮(或按下Command+R),Xcode会编译代码并在模拟器或连接的iOS...
- **内存调试**:通过动态追踪内存分配和释放,可以找出可能导致内存泄漏或越狱检测的代码段。 - **注入与Hook**:允许用户在运行时修改应用行为,以便测试特定路径或触发潜在漏洞。 4. **自动化脚本** 该工具包...
本文将深入探讨iOS运行时的关键特性,并通过示例代码进行讲解。 1. **对象与类**: 在Objective-C中,对象是类的实例。类定义了对象的属性和行为。在运行时,我们可以通过isa指针访问对象的类信息,了解其所属的类...