`
zhangjun0806
  • 浏览: 4938 次
  • 性别: Icon_minigender_1
  • 来自: 济南
最近访客 更多访客>>
社区版块
存档分类
最新评论

IOS开发中有用的代码片段(持续更新)

    博客分类:
  • IOS
阅读更多

1.NSArray中:

 

- (void)makeObjectsPerformSelector:(SEL)aSelector;
- (void)makeObjectsPerformSelector:(SEL)aSelector withObject:(id)argument;

 应用场景:在tableview中,在一个NSArray中保存了每个cell的数据下载处理对象,当数据量比较大的时候,程序可能会收到  memoryWarring,这时候,如果程序继续扩大内存使用,程序将会被操作系统“闪退”。因此在收到memoryWarring的时候需要终止或暂停所有数据下载处理对象的任务。可以使用如下代码片段:

 

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    
    // terminate all pending download connections
    NSArray *allDownloads = [self.imageDownloadsInProgress allValues];
    [allDownloads makeObjectsPerformSelector:@selector(cancelDownload)];
}
 

 

2.NSOperationQueue线程池:

   NSOperationQueue中添加isa NSOperation的类实例,简化了多线程程序的开发。NSOperation的子类只需要覆盖父类的main方法即可。

   a.继承NSOperation,实现自己的线程类

   //code

@interface MyTask: NSOperation

@end

@implementation MyTask
-(void)main {
//custom code
}
@end
   

   b.将MyTask子类添加到operationQueue中

     //code

    NSOperationQueue *queue = [[NSOperationQueue alloc] init];
    int index = 0;
    MyTask *task1 = [[MyTask alloc] initWithTaskId:index++ andSleepTime:2.0f];
    [queue addOperation:task1];
    [task1 release];
    MyTask *task2 = [[MyTask alloc] initWithTaskId:index++ andSleepTime:2.0f];
    [queue addOperation:task2];
    [task2 release];
    
    [queue release]; 
 

   c.如果某个线程执行的任务依赖于其它线程的执行结果的时候,可以自定义线程依赖关系

    //code

    NSOperationQueue *queue = [[NSOperationQueue alloc] init];
    int index = 3;
    MyTask *task3 = [[MyTask alloc] initWithTaskId:index++ andSleepTime:3.0f] ;
    [queue addOperation:task3];
    [task3 release];
    MyTask *task4 = [[MyTask alloc] initWithTaskId:index++ andSleepTime:1.0f];
    [task4 addDependency:[[queue operations] lastObject]];
    [queue addOperation:task4];
    [task4 release];
    [queue release];
 

    这样,虽然task3执行3s,task4执行1s,但是由于task4依赖于task3,因此task4在task3执行完成后才开始执行。一个     task可以设置多个这样的依赖关系。

3.去掉UISearchBar中的UISearchBarIconClear

   //code 

    for (UIView *subview in searchBar.subviews)
    {
        if ([subview conformsToProtocol:@protocol(UITextInputTraits)]) {
            [(UITextField *)subview setClearButtonMode:UITextFieldViewModeNever];
        }
    }

4.去掉UISearchDisplayController显示的“No Results”

   //code

for( UIView *subview in self.searchDisplayController.searchResultsTableView.subviews ) {
		if ([subview isKindOfClass:[UILabel class]]) {
            UILabel *lbl = (UILabel*)subview;
            lbl.text = @"";
        }
}
 
分享到:
评论

相关推荐

    iOSAPP分析无用代码

    通过分析CPU使用率和内存分配,我们可以找出哪些代码片段可能在实际运行中并未产生预期的效果,从而考虑删除或优化。 4. **dead_code**编译器警告:Clang编译器本身在编译时会发出关于未使用函数和变量的警告。通过...

    ios混淆代码工具及垃圾代码生成器工具

    在iOS应用开发中,安全性和隐私保护是至关重要的。为了防止逆向工程分析,提高代码的防护性,开发者有时会采用混淆技术。本文将详细解析标题"ios混淆代码工具及垃圾代码生成器工具"所涉及的知识点,并探讨如何在iOS...

    iOS 开发工具包

    在iOS开发过程中,一套完整的工具包对于开发者来说至关重要。这套"iOS开发工具包"包含了开发者在构建、测试和发布应用程序时可能需要的各种软件和资源。下面将详细介绍其中可能包含的关键工具和知识点: 1. **Xcode...

    垃圾代码生成器

    在iOS开发中,代码生成器能够自动化生成符合语法的代码片段,这些代码可能包括但不限于空实现方法、无效的类和方法、未使用的变量和导入等。这些生成的代码虽然没有实际业务价值,但却能混淆审核人员,使他们难以...

    IOS开发必备资料.rar

    2. **ios开发代码**:这提示我们资料中可能包含了实际的源代码示例,可能是用于演示特定功能或解决常见问题的代码片段。 3. **ios开发资料**:这意味着除了代码之外,可能还有教程文档、指南、最佳实践等理论性内容...

    iOS开发工具小集合,不定期更新.zip

    PTools通常包含一系列与iOS开发相关的辅助工具,如代码片段、快捷方式、调试工具、性能分析工具等。这些工具可能用Swift编写,与标签中的“swift”相对应,表明它们与Apple的编程语言密切相关。此外,“ios”标签...

    ios代码整理-gl

    【标题】"ios代码整理-gl"涉及到的是iOS开发中的Objective-C或Swift编程知识,主要是一些基础且实用的代码片段集合,适用于初学者和团队内部分享,以便于快速理解和应用到项目中。 【描述】"ios 代码 整理 基础版 ...

    ios开发相关文档使用心得

    Apple通常会在文档中提供代码片段,这些示例涵盖了各种常见操作,比如网络请求、动画效果和多线程等。通过实际运行和修改这些代码,开发者可以加深对API的理解,同时也能避免在项目中引入不必要的错误。 其次,iOS...

    提高iOS开发的小技巧和思路小结 (二)

    在大型项目中,有时候需要批量修改或删除符合特定模式的代码片段。正则表达式提供了一种高效的方法来实现这一目标。例如,如果你想要删除H5注释或其他特定格式的代码,你可以根据代码的结构编写相应的正则表达式,...

    iOS APP crash隐患静态代码扫描工具—godeyes

    1. **空指针检测**:检查可能出现的nil对象调用,这是iOS开发中最常见的崩溃原因之一。 2. **内存泄漏检测**:通过分析对象的生命周期,找出可能的内存泄漏点,防止内存占用过高导致应用崩溃。 3. **异常处理检测**...

    IOS应用源码之【应用】-iCloud代码示例.rar

    在iOS开发中,iCloud是一项强大的云存储服务,它允许开发者将用户的数据同步到苹果的云端,以便在多个设备间无缝地共享和访问。这个压缩包"【应用】-iCloud代码示例.rar"提供了iOS应用中使用iCloud功能的具体代码...

    fauxpas检测IOS代码的工具

    - **性能优化提示**:指出可能影响性能的代码片段,如过度使用计算量大的操作或不恰当的数据结构。 - **内存管理分析**:检测ARC(Automatic Reference Counting)下的内存泄漏和循环引用,确保内存使用有效和安全...

    iOS外设检测(外部设备连接)

    在iOS平台上进行外设开发,主要是指通过物理接口(如Lightning或USB)与外部硬件设备进行通信,以便扩展iPhone或iPad的功能。标题"iOS外设检测(外部设备连接)"直指这一领域的核心任务——检测并确认外部设备是否已...

    iOS开发杂货铺 面试题+考试试卷+懒人开发tips.zip

    4. **Code Snippets**:创建和分享代码片段。 5. **Version Control**:Git的使用,版本控制的重要性。 6. **持续集成与持续部署(CI/CD)**:Jenkins、Travis CI等工具的配置和使用。 7. **App Store Connect**...

    IOS核心动画-左右摆动Demo

    在iOS开发中,动画是提升用户体验的关键因素之一。"IOS核心动画-左右摆动Demo"是一个展示如何使用Core Animation框架创建一个图片左右摆动效果的示例。Core Animation是Apple为iOS和macOS平台提供的一个低级动画系统...

    iphone开发常用代码

    本主题聚焦于“iPhone开发常用代码”,我们将探讨一些在实际项目中经常使用的代码片段和概念,这些对于任何iOS开发者来说都是至关重要的。 1. **Swift基础** Swift是Apple在2014年推出的一种现代化、安全的编程...

    WhiteHouseApp源代码可以直接编译运行,解决警告

    3. **Swift与Objective-C混编**:虽然项目使用Objective-C编写,但可能包含Swift代码片段,这展示了两种语言在同一个项目中的交互。 4. **UIKit框架**:WhiteHouseApp使用UIKit进行UI设计和交互,研究各个UI控件的...

    毕业设计之代码生成器.zip

    它读取这些信息,然后按照模板格式生成相应的代码片段,组合成完整的源代码文件。 2. **模板引擎**:代码生成器背后的实现关键在于模板引擎,如Jinja2、Freemarker等,它们允许开发者定义可定制的代码模板,通过...

    记录平时博客中的Demo,持续更新.zip

    从描述来看,我们可以期待在这个压缩包中找到与编程相关的项目或代码片段。 标签 "swift macos ios" 明确指出,这些示例主要关注Apple的生态系统,包括Swift编程语言以及macOS和iOS这两个操作系统。Swift是Apple...

    ios-折叠动画.zip

    在iOS开发中,视图动画是提升用户体验的重要手段之一,它可以为用户界面带来生动和吸引人的效果。"ios-折叠动画.zip"这个压缩包显然包含了关于如何在iOS应用中实现折叠动画的相关资源。主要文件有两个:一个名为...

Global site tag (gtag.js) - Google Analytics