`

IOS代码段

 
阅读更多

图片如何存入 iPhone 本地 Documents 的方法

 

在 UIButton 的 setImage 方法里添加一张图片,以下代码可将图片存入本地的 Documents 下 NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentsDirectory = [

在 UIButton 的 setImage 方法里添加一张图片,以下代码可将图片存入本地的 Documents 下

  1. NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,     NSUserDomainMask, YES);
  2. NSString *documentsDirectory = [paths objectAtIndex:0];
  3. NSString *savedImagePath = [documentsDirectory stringByAppendingPathComponent:@"savedImage.png"];
  4. //also be .jpg or another
  5. UIImage *image = imageView.image; // imageView is your image
  6. NSData *imageData = UIImagePNGRepresentation(image);
  7. //UIImageJPEGRepresentation(image)
  8. [imageData writeToFile:savedImagePath atomically:NO];  

 

 

IPhone的多线程编程初体验

 

流程大概如下:

1. 创建一个线程

 

  1. [NSThread detachNewThreadSelect:@selector(BeginThread)    
  2.   toTarget:selft    
  3.   withObject:nil];    
 

 

 

2.线程里做两件,一件是后台处理耗时间的活(dosomethinglongtime),另一件是更新UI(UpdateUI)

 

 

  1. -(void) BeginThread{    
  2. [self performSelectorInBackgroud:@selector(dosomethinglongtime)    
  3.  withObject:nil];    
  4. [self perfomSelectorOnMainThread:@selector(UpdateUI)    
  5.  withObject:nil    
  6. watUntilDone:NO];    
  7. }    
 

 

3. 那UpdateUI的数据怎么来呢?

 

  1. -(void)dosomethinglongtime{    
  2. // 修改共享变量 varProgress, varText等等    
  3. }    
  4.     
  5. -(void)UpdateUI{    
  6. // 获得共享变量 varProgress, varText等等, 显示在界面上    
  7. }    
 

 

4.这样就完成了一个大概的流程,但是UpdateUI里不能用while(1),不然主线程会堵在UpdateUI的函数里,怎么办呢? Google了一个方法, UpdateUI的方法做了一下修改

 

 

  1. -(void)UpdateUI{    
  2. // 获得共享变量 varProgress, varText等等, 显示在界面上    
  3. if(!finished)    
  4.      [NSTimer scheduledTimerWithTimeInterval:0.2    
  5.  target:self    
  6. selector:@selector(UpdateUI)    
  7.  userInfo:nil repeats:NO];    
  8. }    
 

 

 

这样的意思, 如果没线程没结束,过0.2秒再回到这个函数更新界面, 如此循环, 直到结束.

以上IPhone多线程编程的一种方法, 下一篇就讲一下用NSOperation和NSOperationQueue来实现.


 

[IPhone开发]发送Http请求(POST GET)的方法

 

 

我们知道Http有Get和Post两种方法,我们分开说吧.

另注: 今天讲的方法是同步的请求, 异步的方法我还没试过, 不知道有没有使用异步的需求, 有的话于发上来和大家分享.

1.Get方法

1.1 使用NSMutableURLRequest

 

[c-sharp] view plaincopy
  1. NSURL* url = [NSURL URLWithString:@"http://aminby.net"];    
  2. NSMutableURLRequest* request = [NSMutableURLRequest new];    
  3. [request setURL:url];    
  4. [request setHTTPMethod:@"GET"];    
  5. NSHTTPURLRequest* response;    
  6. NSData* data = [NSURLConnection sendSynchronousRequest:request    
  7.               returningResponse:&response error:nil];    
  8. [NSString* strRet = [[NSString alloc] initWithData:data encoding:NSUTF8String];    
  9. NSLog(strRet);    
  10. [strRet release];    
 

 

1.2 使用NSString

 

[c-sharp] view plaincopy
  1. / options有两个枚举,NSMappedRead这个不懂, NSUncachedRead是不缓存    
  2. [NSData dataWithContentsOfURL:(NSURL *)url    
  3.         options:(NSUInteger)readOptionsMask    
  4.         error:(NSError **)errorPtr]    
  5. //  或者    
  6. [NSData dataWithContentsOfURL:(NSURL *)url];    
 

 

 

1.2和1.3的方法是缺点是没办法知道response的status,一般是返回200-299之间的数值代表请求成功.我们可以依照这个code来做数据处理, 如果对地址存在很有把握,就可以使用后两种简单的GET方法.

今天查了一下手册,发现NSArray NSDictionary 也有xxxxWithContentsOfURL的方法, 这两个我还没用过, 应该是跟NSData和NSString一样,但具体怎么用我还不清楚.

 

 

 

2.Post方法

2.1 使用NSMutableURLRequest

 

[c-sharp] view plaincopy
  1. NSURL* url = [NSURL URLWithString:@"http://aminby.net"];    
  2. NSMutableURLRequest*  request = [NSMutableURLRequest new];    
  3. [request setURL:url];    
  4. [request  setHTTPMethod:@"GET"];    
  5. [request addValue:@"application/json" forHTTPHeaderField:@"Content-Type"];    
  6. [request setHTTPBody:@"some param"];    
  7. NSHTTPURLRequest* response;    
  8. NSData* data =  [NSURLConnection sendSynchronousRequest:request    
  9.          returningResponse:&response error:nil];    
  10. [NSString* strRet =  [[NSString alloc] initWithData:data encoding:NSUTF8String];    
  11. NSLog(strRet);    
  12. [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

 

 

 

分享到:
评论

相关推荐

    iOSAPP分析无用代码

    3. 在Xcode中打开Instruments,选择Time Profiler模板,运行应用并分析性能数据,找出运行时无用的代码段。 4. 检查编译器警告,特别是关于`dead_code`的警告,并决定是否删除相关的代码。 在分析和优化过程中,...

    25条iOS代码编写技巧与建议

    ### 25条iOS代码编写技巧与建议 #### 1. 使用ARC管理内存 - **ARC简介**:ARC(Automatic Reference Counting),即自动引用计数,是自iOS 5开始引入的一种内存管理机制。ARC的主要目的是自动化管理Objective-C...

    关机游戏IOS代码

    《关灯游戏IOS代码》是针对iOS平台开发的一款智力挑战应用,它基于经典的“关灯”游戏机制,玩家需要通过一系列操作使屏幕上的所有灯光达到指定状态,通常是全部关闭,以完成关卡并进入下一阶段。这个游戏不仅锻炼了...

    IOS代码中使用自定义UITableView

    例如,通过`numberOfSectionsInTableView`返回表格的段数,`tableView:numberOfRowsInSection:`返回每段中的行数,`tableView:cellForRowAt:`方法则用于为每一行创建并配置UITableViewCell。 对于自定义...

    IOS计算器源代码

    以上是iOS计算器源代码的主要知识点,通过深入研究和理解这段代码,开发者可以提升自己的iOS编程技能,特别是在处理复杂计算逻辑和用户交互方面。同时,这也是一个很好的学习如何在iOS平台上创建自定义组件的例子。

    IOS 代码查看

    Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时...

    iOS软件代码规范

    5】遵循一致的编码风格,保持团队协作的高效性。说明:团队合作中,统一的编码风格能够...以上是iOS软件代码规范的主要内容,遵循这些原则和规范,能够提升代码质量,促进团队协作,并为项目的长期维护打下坚实基础。

    iOS 奔溃代码定位分析工具

    "iOS崩溃代码定位分析工具"是一个关键的资源,它专门用于处理dSYM文件,帮助开发者迅速定位到导致崩溃的代码行。dSYM文件是苹果为调试目的生成的一种特殊文件,包含了应用的二进制代码的调试信息。 首先,我们要...

    相册展示(iOS源代码)

    在iOS开发中,相册展示是一项常见的功能,用于在应用程序中显示用户的照片或者从系统相册中选择图片。本项目提供了这样一个实现,标题为...通过学习和理解这段源代码,开发者可以提升自己在iOS应用开发中的综合能力。

    AStarDemo IOS游戏代码_ios源码

    【标题】"AStarDemo IOS游戏代码_ios源码"是一个关于iOS游戏开发的项目,主要展示了A*寻路算法的应用。A*算法是路径搜索领域的一种高效算法,常用于游戏中的角色移动、导航系统或者地图路径规划。在这个项目中,...

    AES_iOS 加密源代码 iOS版本

    这段代码首先创建了一个256位的密钥,然后使用随机生成的nonce(初始化向量)进行加密。`seal`方法会返回一个组合了密文和认证标签的数据结构,可以用于解密时验证数据的完整性和安全性。 解密过程如下: ```swift...

    iOS录音代码

    这个名为“iOS录音代码”的资源包,很可能包含了实现这一功能的相关代码示例。在iOS中,录音操作主要依赖于AVFoundation框架,这是一个强大的多媒体处理框架,可以处理音频和视频内容。 首先,要开启录音功能,你...

    ios iphone app 源代码,HelloWorld样例

    在iOS开发领域,入门的第一步通常是创建一个"Hello, World!"的应用程序,它标志着开发者对新平台的理解和实践的...通过学习和理解这段源代码,初学者可以逐步掌握iOS开发的关键技术,并为更复杂的项目打下坚实的基础。

    iOS metal 示例代码

    这个"iOS metal 示例代码"是官方提供的一个实例,旨在帮助开发者了解如何利用Metal引擎来实现复杂的动画效果。在本文中,我们将深入探讨Metal的关键特性以及如何在实际项目中应用这些特性。 首先,Metal的核心在于...

    ios开发详细教程, ios代码大全, 苹果系统(ios)架构教程. 附超详细iod学习路径图

    - **泛型**:Swift支持泛型编程,可以在不牺牲性能的情况下编写更加灵活和重用的代码。 - **协议**:协议定义了一组规则,任何遵循该协议的类型必须实现这些规则。 - **闭包**:Swift中的闭包是一种没有名字的函数,...

    关于iOS代码注释的统一规范

    ### 关于iOS代码注释的统一规范 在iOS开发中,代码注释是维护和管理项目不可或缺的一部分。本文档旨在介绍一套iOS应用开发中的代码注释规范,这不仅有助于提高团队内部的协作效率,还能确保代码的清晰度和可读性。 ...

    IOS版本提示更新

    有些人可能希望等待一段时间,待苹果解决初期用户遇到的问题,也就是通常所说的“观望期”。这样可以避免遇到可能导致设备运行不稳定的新问题。 9. **开发者与公共测试版**:在正式版发布之前,Apple会提供开发者...

    从零开始iOS8编程【HelloWorld】配套代码

    这段代码创建了一个新的`UILabel`实例,设置其文本为"Hello, World!",并将其添加到视图控制器的视图上。 4. **运行应用**:点击Xcode顶部的运行按钮(或按下Command+R),Xcode会编译代码并在模拟器或连接的iOS...

    swift-iOS安全审计工具包一个用于iOS应用安全审计和iOS逆向工程的半自动工具

    - **内存调试**:通过动态追踪内存分配和释放,可以找出可能导致内存泄漏或越狱检测的代码段。 - **注入与Hook**:允许用户在运行时修改应用行为,以便测试特定路径或触发潜在漏洞。 4. **自动化脚本** 该工具包...

    iOS运行时(runtime)示例代码

    本文将深入探讨iOS运行时的关键特性,并通过示例代码进行讲解。 1. **对象与类**: 在Objective-C中,对象是类的实例。类定义了对象的属性和行为。在运行时,我们可以通过isa指针访问对象的类信息,了解其所属的类...

Global site tag (gtag.js) - Google Analytics