`

IOS开发重点与难点

 
阅读更多

1。给iPhone程序创建Splash欢迎界面
最简单的方法就是做一个全屏的欢迎页的图片,把它命名为Default.png,然后放在Xcode工程的Resource里面。 执行就可以看到你的这个默认图像在程序完全加载之前显示在屏幕上。
Default.png是一张480*320的png图片用于在程序启动时显示。启动时,系统会用这张图片作为临时背景,直到程序载入了他的窗口和用户界面。
Icon.png是一张57*57的png图片,用于在iPhone的主界面上作为程序图标代表你的程序。这张图片不需要有其他附加特效,系统会自动添加这些效果。
Icon-Setting.png是一张29*29的png图片,用于在设置程序中作为图标代表你的程序。如果你的程序有Settings.bundle,这个图标将会显示在程序名的旁边。如果你没有设置这张图片,系统会将Icon.png缩放来代替。
2。 怎样才能让程序在运行过程中不锁屏呢?
[UIApplication sharedApplication].idleTimerDisabled=YES;//not let iphone go to sleep
3。显示被view 或 control遮盖的背景内容
xx.backgroundColor=[UIColor clearColor];
4。url编码
NSString *strURL = @”http://www.google.com/search?hl=en&newwindow=1&q=如何对url编码&aq=f&oq=&aqi=”;
strURL = [strURL stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; //使用utf8
strURL=[strURLstringByAddingPercentEscapesUsingEncoding: CFStringConvertEncodingToNSStringEncoding( kCFStringEncodingGB_18030_2000)] ;////使用 gb2312
5。转换网页编码gb2312 -> utf
1.        //编码转换 gb2313 to UTF
2.        NSData * myResponseData = [myRequest responseData];
3.        NSStringEncoding enc = CFStringConvertEncodingToNSStringEncoding (kCFStringEncodingGB_18030_2000);
4.        NSString * myResponseStr = [[NSString alloc] initWithData:myResponseData encoding:enc];
6。获取界面语言设置
NSUserDefaults* defs = [NSUserDefaults standardUserDefaults];
NSArray* languages = [defs objectForKey"AppleLanguages"];
NSString* preferredLang = [languages objectAtIndex:0];
7.对于做为数据Model的类来说,让其实现NSCoding协议是个好习惯
it’s just good habit to conform data model classes to NSCoding.
8
It’s okay to redefine properties to be more permissive than the
same property as declared in a protocol to which you’ve conformed, or as declared in
your superclass. You can always redefine a readonly or writeonly property to be
readwrite, but you have to explicitly use the readwrite keyword. Most of the time, that
keyword isn’t used because it’s the default value and unnecessary.
NSFileManager中包含了用来查询单词库目录、创建、重命名、删除目录以及获取/设置文件属性的方法(可读性,可编写性等等)。

每个程序都会有它自己的沙盒,通过它你可以阅读/编写文件。写入沙盒的文件在程序的进程中将会保持稳定,即便实在程序更新的情况下。
如下所示,你可以在沙盒中定位文件目录:
//对于错误信息
NSError *error;
// 创建文件管理器
NSFileManager *fileMgr = [NSFileManagerdefaultManager];
//指向文件目录
NSString *documentsDirectory= [NSHomeDirectory() 
stringByAppendingPathComponent"Documents"];
//创建一个目录
[[NSFileManager defaultManager]   createDirectoryAtPath: [NSString stringWithFormat"%@/myFolder", NSHomeDirectory()] attributes:nil];

创建一个文件
现在我们已经有了文件目录,我们就能使用这个路径在沙盒中创建一个新文件并编写一段代码:
// File we want to create in the documents directory我们想要创建的文件将会出现在文件目录中
// Result is: /Documents/file1.txt结果为:/Documents/file1.txt
NSString *filePath= [documentsDirectory
stringByAppendingPathComponent"file1.txt"];
//需要写入的字符串
NSString *str= @"iPhoneDeveloper Tips\nhttp://iPhoneDevelopTips,com";
//写入文件
[str writeToFile:filePath atomically:YES 
encoding:NSUTF8StringEncoding error:&error];
//显示文件目录的内容
NSLog(@"Documentsdirectory: %@",
[fileMgr contentsOfDirectoryAtPath:documentsDirectoryerror:&error]);
我们为想要创建的文件构建一条路径(file1.txt),初始化一个字符串来写入文件,并列出目录。最后一行显示了在我们创建文件之后出现在文件目录下的一个目录列表:
对一个文件重命名
想要重命名一个文件,我们需要把文件移到一个新的路径下。下面的代码创建了我们所期望的目标文件的路径,然后请求移动文件以及在移动之后显示文件目录。
//通过移动该文件对文件重命名
NSString *filePath2= [documentsDirectory
stringByAppendingPathComponent"file2.txt"];
//判断是否移动
if ([fileMgr moveItemAtPath:filePath toPath:filePath2 error:&error] != YES)
NSLog(@"Unable to move file: %@", [error localizedDescription]);
//显示文件目录的内容
NSLog(@"Documentsdirectory: %@", 
[fileMgr contentsOfDirectoryAtPath:documentsDirectoryerror:&error]);
在移动了文件之后,输出结果应该如下图所示:
删除一个文件
为了使这个技巧完整,让我们再一起看下如何删除一个文件:
//在filePath2中判断是否删除这个文件
if ([fileMgr removeItemAtPath:filePath2 error:&error] != YES)
NSLog(@"Unable to delete file: %@", [error localizedDescription]);
//显示文件目录的内容
NSLog(@"Documentsdirectory: %@",
[fileMgr contentsOfDirectoryAtPath:documentsDirectoryerror:&error]);
一旦文件被删除了,正如你所预料的那样,文件目录就会被自动清空:
这些示例能教你的,仅仅只是文件处理上的一些皮毛。想要获得更全面、详细的讲解,你就需要掌握NSFileManager文件的知识。
在开发iPhone程序时,有时候要对文件进行一些操作。而获取某一个目录中的所有文件列表,是基本操作之一。通过下面这段代码,就可以获取一个目录内的文件及文件夹列表。

1.        
NSFileManager *fileManager = [NSFileManager defaultManager];
//在这里获取应用程序Documents文件夹里的文件及文件夹列表
        NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
        NSString *documentDir = [documentPaths objectAtIndex:0];
        NSError *error = nil;
        NSArray *fileList = [[NSArray alloc] init];
//fileList便是包含有该文件夹下所有文件的文件名及文件夹名的数组
        fileList = [fileManager contentsOfDirectoryAtPath:documentDir error:&error];

以下这段代码则可以列出给定一个文件夹里的所有子文件夹名
1.        
NSMutableArray *dirArray = [[NSMutableArray alloc] init];
        BOOL isDir = NO;
//在上面那段程序中获得的fileList中列出文件夹名
        for (NSString *file in fileList) {
                NSString *path = [documentDir stringByAppendingPathComponent:file];
                [fileManager fileExistsAtPath:path isDirectory&isDir)];
                if (isDir) {
                        [dirArray addObject:file];
                }
                isDir = NO;
        }
        NSLog(@"Every Thing in the dir:%@",fileList);
        NSLog(@"All folders:%@",dirArray);

分享到:
评论

相关推荐

    移动软件开发-3期(KC015) iOS应用开发入门 教学设计.doc

    这个教学设计旨在引导初学者逐步进入iOS开发的世界,通过6个学时的学习,涵盖了一系列基础但关键的知识点。 首先,iOS系统是一个强大的操作系统,广泛应用于iPhone、iPad和iTouch等设备,提供了多点触摸、始终在线...

    ios-仿小红书个人中心页.zip

    看着小红书的个人中心页,特效、布局并不是太复杂,但是效果实现起来却不是那么容易。比如下方的tableview到底怎么布局,才能确保滚动到顶部时...这个是重点和难点!大家如果有更好的方案可以提一下,相互提高!谢谢。

    Iphone 编程系列 iPhone Advanced Projects

    本书汇聚了多位资深 iOS 开发者的实战经验与技术心得,通过一系列高级项目的开发过程,向读者展示了 iOS 应用开发中的高级技巧和技术难点。 #### 作者团队介绍 本书由多位业界知名的 iOS 开发专家共同编写,其中...

    iOS App使用GCD导致的卡顿现象及解决方法

    主要的难点在于卡顿现象难以在开发设备上复现,这导致开发者难以定位和解决问题。 接下来,我们将深入探讨一个特定的卡顿案例。根据后台日志显示,卡顿出现在使用dispatch_async函数的场景中。dispatch_async函数的...

    WeddingMemory客户端

    通过这款应用,开发者不仅可以了解基本的iOS编程概念,还能深入探讨各种技术难点和重点。本文将对iOS开发的关键知识点进行详尽的解析,帮助你逐步掌握这一领域的核心技能。 1. **Swift编程语言**:WeddingMemory...

    java程序开发在手机游戏开发中的应用

    在“Pocket Boxing”手机游戏的开发制作过程中,开发者面临着多个挑战和技术难点,主要包括以下几个方面: 1. **游戏事件处理**:游戏事件是指玩家在游戏中的各种交互行为,如点击屏幕、滑动手指等。正确识别并处理...

    2020全国职业院校教学能力比赛教学设计.docx

    * 通过课前自主学习与课堂实践操作,理解 IOS 界面设计规范 * 根据制作要求与产品架构图,完成“校园融媒体”产品原型图设计 * 培养严谨规范的职业意识与精益求精的工匠精神等岗位职业素养 这个教学设计旨在帮助...

    (2021-2022年)专题资料完美版基于Unity3D引擎的赛车游戏的设计与实现.ppt

    重点和难点工作集中在熟悉Unity3D引擎,设计友好的UI,模拟真实的物理效果,以及优化内存资源以确保游戏在不同平台上的流畅运行。游戏框架结构设计包括层次结构设计,确保游戏的组织清晰,便于维护和扩展。 可能...

    毕业设计,使用uiapp做的一个关于汽车信息的app.zip

    在毕业设计中使用UIAPP,意味着该项目可能着重于用户界面的设计与交互,而不是深入到底层代码。 2. **移动应用开发**:这个项目是一个针对汽车信息的APP,意味着它可能包含了车辆数据展示、搜索、比较、评价等功能...

    游戏UI界面框架设计系列视频课程

    三: 窗体层级管理 层级管理是UI框架的重点与难点,本章节使用了大量时间,对核心开发理念、与具体实现编码,进行详细的讲解。四: 模态窗体管理 游戏项目中对于重要信息,经常会出现“弹出窗口”。对于此类UI界面...

    Frida在移动安全审计中的应用.pdf

    这些关键字涉及Android应用中常见的数据存储、输入输出、网络通信、运行时环境、数据库、安全机制等关键功能模块,这些模块往往是移动安全审计中的重点和难点,Frida通过插桩这些模块相关的代码,可以帮助审计人员...

    北大青鸟Y2笔试题 --绝对内部题 9月Y2笔试

    作为“绝对内部题”,这些试题可能包含了一些实际教学中强调的重点和难点,对于备考者来说具有较高的参考价值。 一、计算机基础知识 这部分通常涵盖计算机系统的基本组成,包括硬件(CPU、内存、硬盘等)和软件...

    全国职业院校教学能力比赛教学设计_教学能力大赛教案模板汇总比赛教学设计案格式实施报告PPT说课稿.docx

    教学重点在于依据产品架构图完成原型图设计,并符合IOS界面设计规范,难点同样在此。 教师采用项目教学法,结合混合式学习环境,利用平面设计工作室、多媒体教学系统和网络学习平台等资源。例如,课前通过学习平台...

    Delphi认证考试答案

    通过这些答案,考生可以了解考试的重点和难点,同时检查自己的学习进度和理解程度。以下是根据这个主题可能会涉及的一些Delphi编程知识点: 1. **Object Pascal语言基础**:了解Object Pascal的基本语法、类和对象...

    2013-2020年浙江工商大学845计算机基础综合考研真题

    这个资源包含2013年至2020年间的历年真题,对于备考的学生来说,它是宝贵的参考资料,可以帮助考生了解考试的命题趋势、重点难点以及可能的出题方式。 一、计算机基础知识 1. 计算机系统结构:这部分可能涉及CPU的...

    对外汉语教学汉字学习类APP的分析与改进.pdf

    作者通过筛选iOS App Store中的127款汉字学习应用,重点关注了45款专门针对外国学习者设计的APP,分析了它们在命名检索、内容系统性、人机交互设计、程序趣味性等方面的特点和不足。 【核心知识点】 1. **汉字学习...

    需要攻克的模块

    【标题】:“需要攻克的模块”通常指的是在IT项目开发或个人学习过程中遇到的特定技术难题或功能模块,这些模块可能涉及到系统设计的关键部分,或者是技术栈中的难点。在这个特定的场景下,"蓝牙模块"可能就是我们...

    互联网科技手机应用网络传媒电子商务.ppt

    - **工作重点与难点**:在商业或项目管理中,识别和解决工作中的关键问题至关重要,这可能涉及到战略规划、资源分配、风险管理和团队协作等。 - **营销渠道建设**:包括线上线下的营销策略,如网络营销活动、业务员...

Global site tag (gtag.js) - Google Analytics