• Files 可以集中管理 iOS 上应用内创建的文件,以及各个云盘服务中保存的文件。 使用后可以实现以下功能: 1、查看各个应用沙盒中的文件 2、操作各个应用沙盒中的文件 (1)拷贝 (2)复制 (3)重新命名 (4...

    Files 可以集中管理 iOS 上应用内创建的文件,以及各个云盘服务中保存的文件。

    使用后可以实现以下功能:
    1、查看各个应用沙盒中的文件
    2、操作各个应用沙盒中的文件
    (1)拷贝
    (2)复制
    (3)重新命名
    (4)移动
    (5)删除
    (6)共享
    (7)标签
    (8)简介

    使用示例图
    在这里插入图片描述

    功能实现
    1、配置

    Supports opening documents in place    =     YES
    Application supports iTunes file sharing  =  YES
    

    在这里插入图片描述
    2、代码示例

    - (BOOL)showFilesWithURL:(NSURL *)URL
    {
        assert([[NSFileManager defaultManager] fileExistsAtPath: [URL path]]);
        NSError *error = nil;
        BOOL success = [URL setResourceValue:[NSNumber numberWithBool: YES] forKey: NSURLIsExcludedFromBackupKey error: &error];
        if (!success) {
            NSLog(@"Error excluding %@ from backup %@", [URL lastPathComponent], error);
        }
        return success;
    }
    
    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
        // Override point for customization after application launch.
        
        //
        NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
        NSString *documentsDirectory = [paths objectAtIndex:0];
        [self showFilesWithURL:[NSURL fileURLWithPath:documentsDirectory]];
    
        return YES;
    }
    
    展开全文
  • iOS开发规范文档

    2020-06-06 23:30:53
    iOS开发规范文档,规范代码开发的习惯,能更好管理代码,便于后期维护
  • iOS开发证书管理

    2017-09-07 23:31:30
    总会报一些错误,有些是语法上的错误,老的代码在新的编译环境下不通过,还有的因为因为签名导致的错误,如常见的错误提示:“Failed to create provisioning profile.”,ios的证书管理ios开发中必须掌握的技能,...

    最近,没啥事情,就逛逛论坛,研究一些新技术,偶尔导入github上一些开源的iOS项目学习学习别人的一些写法。不过有时间,在运行别人的项目的时候,总会报一些错误,有些是语法上的错误,老的代码在新的编译环境下不通过,还有的因为因为签名导致的错误,如常见的错误提示:“Failed to create provisioning profile.”,ios的证书管理是ios开发中必须掌握的技能,本文先简单的总结下。

    证书

    证书,是苹果颁发给开发者的凭证,常常以.cer结尾的文件。这个.cer文件格式的证书是让开发者使用的设备(也就是你的Mac)有真机调试,发布APP的权限。形如:
    这里写图片描述

    在苹果开发体系中,证书主要分为两种:开发证书和发布证书。

    Developer Certification(开发证书)

    安装在电脑上提供权限:开发人员通过设备进行真机测试。也可以生成副本供多台电脑安装;

    Distribution Certification(发布证书)

    安装在电脑上提供发布iOS程序的权限:开发人员可以制做测试版和发布版的程序。不可生成副本,仅有配置该证书的电脑才可使用;

    授权文件

    授权文件是对设备如iPod Touch、iPad、iPhone的授权,文件内记录的是设备的UDID和程序的App Id,即:使被授权的设备可以安装或调试Bundle identifier与授权文件中记录的App Id对应的程序。
    开发者帐号在创建授权文件时候会选择App Id,(开发者帐号下App Id中添加,单选)和UDID(开发者帐号下Devices中添加最多100个,多选)。授权文件分为两种,并对应相应的证书使用。

    Developer Provisioning Profile(开发授权文件)

    在装有开发证书或副本的电脑上使用,开发人员选择该授权文件通过电脑将程序安装到授权文件记录的设备中,即可进行真机测试。
    注意:确保电脑有权限真机调试,即安装了开发证书或副本;在开发工具中程序的Bundle identifier和选中使用的授权文件的App Id要一致;连接调试的设备的UDID在选中的授权文件中有记录。

    Distribution Provisioning Profile(发布授权文件)

    在装有发布证书的电脑上(即配置证书的电脑,只有一台)制做测试版和发布版的程序。
    发布版就是发布到App Store上的程序文件,开发者帐号创建授权文件时选择store选项,选择App Id,无需选择UDID;
    测试版就是在发布之前交给测试人员可同步到设备上的程序文件,开发者帐号创建授权文件时选择AdHoc,选择App Id和UDID;只有选中的UDID对应的设备才可能安装上通过该授权文件制做的程序。

    开发密钥

    安装证书成功的情况下证书下都会生成Keychain,上面提到的证书副本(导出证书重新命名)就是通过配置证书的电脑导出Keychain(就是.p12文件)安装到其他机子上,让其他机子得到证书对应的权限。Developer Certification就可以制做副本Keychain分发到其他电脑上安装,使其可以进行真机测试。

    证书申请与使用

    注:本部分截图全部来源于网上,笔者在最新的苹果环境中已验证。

    1,登录苹果开发者中心,地址为:https://developer.apple.com。登录成功后在页面右侧选择“Certificates”。
    这里写图片描述
    这里写图片描述

    登录成功之后,可以看到和你账号相关的证书和账号等信息。
    这里写图片描述
    2,如果你的账号是新的账号,则需要重新走申请流程。首先,需要生成CSR文件。在桌面快捷中打开钥匙串访问。
    这里写图片描述

    打开右上方钥匙串访问栏->证书助理->从证书颁发机构请求证书…,然后填写相关信息。最后将.csr文件下载到本地硬盘。
    这里写图片描述

    这里写图片描述

    3,如果你还没有申请App ID,那么直接申请一个就可以。打开证书管理界面,点击左侧的APP IDs选项,点击+即可。
    这里写图片描述

    这里写图片描述

    然后填写相关的信息。
    这里写图片描述

    最后会有一个详细的内容列表,对应无误后,提交完成。

    4,证书申请,选择证书的类型,iOS罗列了开发常用的证书类型。
    这里写图片描述

    如果是申请推送证书,则会关联一个App ID。
    这里写图片描述

    接下来,需要上传之前建好的CSR文件。
    这里写图片描述

    5,授权文件申请。和申请证书一样,系统会罗谢ios开发中的常用授权文件。
    这里写图片描述
    选择关联App ID。
    这里写图片描述

    6,在项目中选择运行的链接上真机,记得勾选自动管理证书选项。 这里写图片描述

    展开全文
  • iOS文件管理

    2017-06-29 14:05:41
    1、iOS的应用程序只能对自己创建的文件系统读取文件,这个独立、封闭、安全的空间,叫做沙盒。它一般存放着程序包文件(可执行文件)、图片、音频、视频、plist文件、sqlite数据库以及其他文件; 2、每个应用程序都...

    沙盒

    • iOS的沙盒机制
      1、iOS的应用程序只能对自己创建的文件系统读取文件,这个独立、封闭、安全的空间,叫做沙盒。它一般存放着程序包文件(可执行文件)、图片、音频、视频、plist文件、sqlite数据库以及其他文件;
      2、每个应用程序都有自己的独立的存储空间(沙盒);
      3、一般来说,应用程序之间是不可以互相访问沙盒的;
      4、模拟器的沙盒位置路径:/User/userName/Library/Application Support/iPhone Simulator

    • 沙盒的构成:当创建应用程序的时候,在每个沙盒中都含有三个文件,分别是Document、Library和temp。
      1、Document:一般需要持久的数据都放在此目录中,可以在当中添加子文件夹,iTunes备份和恢复的时候,会包括此目录;
      2、Library:设置程序的默认设置和其他的状态;
      3、temp:创建临时文件的目录,当iOS设备重启时,文件会被自动清除。

    • 获取沙盒的目录

    .h文件
    #import <Foundation/Foundation.h>
    
    @interface YDWSandBoxPath : NSObject
    
    // 获取沙盒Document文件目录
    + (NSString *)getDocumentDirectory;
    
    // 获取沙河Library文件目录
    + (NSString *)getLibraryDirectory;
    
    // 获取沙盒Library/Caches文件目录
    + (NSString *)getCacheDirectory;
    
    // 获取沙盒Preference文件目录
    + (NSString *)getPreferencePanesDirectory;
    
    //获取沙盒tmp文件目录
    + (NSString *)getTmpDirectory;
    
    @end
    
    
    .m文件
    #import "YDWSandBoxPath.h"
    
    @implementation YDWSandBoxPath
    
    + (NSString *)getDocumentDirectory {
        return [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
    }
    
    + (NSString *)getLibraryDirectory {
        return [NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES) lastObject];
    }
    
    + (NSString *)getCacheDirectory {
        return [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject];
    }
    
    + (NSString *)getPreferencePanesDirectory {
        return [NSSearchPathForDirectoriesInDomains(NSPreferencePanesDirectory, NSUserDomainMask, YES) lastObject];
    }
    
    + (NSString *)getTmpDirectory {
        return NSTemporaryDirectory();
    }
    
    @end
    • 清除缓存:在开发的过程中,遇到有用的数据,会进行缓存,当该数据不需要时,可以清除。在这里整理了几个方法,统计文件的大小,清除指定文件,清除指定目录下的全部文件等。
    // 根据路径返回目录或文件的大小
    + (double)sizeWithFilePath:(NSString *)path {
        // 获取文件的管理者
        NSFileManager *manager = [NSFileManager defaultManager];
        // 检测路径的合理性
        BOOL direct = NO;
        BOOL exits = [manager fileExistsAtPath:path isDirectory:&direct];
        if (!exits) {
            return 0;
        }
        if (direct) {
            NSArray *subPaths = [manager subpathsAtPath:path];
            int totalSize = 0;
            for (NSString *subPath in subPaths) {
                NSString *fullSubPath = [path stringByAppendingPathComponent:subPath];
                BOOL dir = NO;
                [manager fileExistsAtPath:path isDirectory:&dir];
                if (!dir) {
                    NSDictionary *attrs = [manager attributesOfItemAtPath:fullSubPath error:nil];
                    totalSize += [attrs[NSFileSize] integerValue];
                }
            }
            return totalSize/(1024*1024.0);
        } else {
            NSDictionary *attrs = [manager attributesOfItemAtPath:path error:nil];
            return [attrs[NSFileSize] intValue]/(1024*1024.0);
        }
    }
    
    // 得到指定目录下的所有文件
    + (NSArray *)getAllFileNames:(NSString *)dirPath {
        return [[NSFileManager defaultManager] subpathsOfDirectoryAtPath:dirPath error:nil];
    }
    
    // 删除指定目录或文件
    + (BOOL)clearCacheWithFilePath:(NSString *)path {
        return [[NSFileManager defaultManager] removeItemAtPath:path error:nil];
    }
    
    // 清空指定目录下文件
    + (BOOL)clearCacheFormDirectoryPath:(NSString *)dirPath {
        NSArray *fileArray = [YDWSandBoxPath getAllFileNames:dirPath];
        BOOL flag = NO;
        for (NSString *fileName in fileArray) {
            NSString *filePath = [dirPath stringByAppendingPathComponent:fileName];
            flag = [YDWSandBoxPath clearCacheWithFilePath:filePath];
            if (!flag) {
                break;
            }
        }
        return flag;
    }
    

    NSData

    • NSData存储的是二进制数据,屏蔽了数据之间的差异,文本、音频、图像等数据都可用NSData来存储;
    • NSData的用法:
      1、NSString与NSData互相转换
      NSData –> NSString为:NSString *dataString = [[NSString alloc] initWithData:[NSData data] encoding:NSUTF8StringEncoding];

      NSString –> NSData为:NSData *stringData = [[NSString string] dataUsingEncoding:NSUTF8StringEncoding];

      将data类型的数据,转成UTF8的数据:

    + (NSString*)dataToUTF8String:(NSData *)data {
        return [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
    }

    将string转换为指定编码 :

    + (NSString *)changeDataToEncodinString:(NSData *)data encodin:(NSStringEncoding )encoding {
        return [[NSString alloc] initWithData:data encoding:encoding];
    }

    2、NSData 与 UIImage
    NSDat –> UIImage为:UIImage *image = [UIImage imageWithData: imageData];
    例如:

    - (NSData *)changePictureToNSData {
        NSString *filePath = [[[NSBundle mainBundle] bundlePath] stringByAppendingPathComponent:[NSString stringWithFormat:@"ceshi.png"]];
        NSData *imageData = [NSData dataWithContentsOfFile:filePath];
        return imageData;
    }

    Plist文件 ##:

    数组、字典只能将BOOL、NSNumber、NSString、NSData、NSDate、NSArray、NSDictionary写入属性列表plist文件.

    • String方式添加
    NSString *path = [NSHomeDirectory() stringByAppendingPathComponent:@"xxx.plist"];
        [[NSString string] writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:nil];
    • Array方式添加
    NSString *path = [NSHomeDirectory() stringByAppendingPathComponent:@"xxx.plist"];
        [[NSArray array] writeToFile:path atomically:YES];
    • Dictionary方式添加
    NSString *path = [NSHomeDirectory() stringByAppendingPathComponent:@"xxx.plist"];
        [[NSDictionary dictionary] writeToFile:path atomically:YES];
    展开全文
  • 要做软件开发开发文档这个大百科全书是必不可少的。很多开发问题都是可以在开发文档中找到答案的,当然令多数程序猿头疼是语言障碍。骨头总是要啃的,来看看ios开发的官方文档吧: 1.开发文档在哪: xcode作为...

    要做软件开发,开发文档这个大百科全书是必不可少的。很多开发问题都是可以在开发文档中找到答案的,当然令多数程序猿头疼是语言障碍。骨头总是要啃的,来看看ios开发的官方文档吧:

    1.开发文档在哪:
    xcode作为ios和mac应用开发的唯一官方工具。开发文档自然少不了。它在哪呢:
    这里写图片描述
    我们在xcode的帮助菜单中第二项就是开发文档。如果你的xcode没有这一项说明你还没有下载api文档。

    2.下载开发文档:
    如果没有下载api文档,我们需要打开xcode的配置Prefreences中选择DownLoads来选择我们要下载的帮助文档。
    这里写图片描述

    这里写图片描述

    3.如何读开发文档:
    我们打开开发文档目录:
    这里写图片描述
    ios开发文档的目录很直观的分为了:15部分
    包括了ios 4层 层级结构的Cocoa Touch Layer 、Core OS Layer、Media、Core Services Layer、Media Layer;
    还有其他的一些分类:
    音视频 Audio&Video
    数据管理:Data Management
    图形动画:Graphics&Animation
    语言工具:Languages&Utilities
    数学计算:Mathematical Computation
    网络相关:Networking&internet
    性能:Performance
    安全:Security
    用户体验:User Experience
    Xcode中ios开发相关:Xcode
    杂项:General
    我们打开General的二级目录(所有的二级目录都是这样分类的:)
    这里写图片描述
    所有的二级目录都是这样分类的:
    Sample Code 示例代码
    Guides 指南
    Reference:参考文档

    Sample Code 中都是ios工程代码,可以直接在右侧查看工程代码内容也可以点击 工程代码中提供的 Open Project 文字链接来在xcode中打开这个ios工程。
    Guides指南中多为文本内容,关于各种主题的相关开发指南。
    Reference也为文本内容,按照相关的主题进行长篇的文字陈述。

    Guides和Reference中的文本文档都是可以通过xcode的搜索框右侧的箭头导出其PDF文档的。
    这里写图片描述
    其实就是从苹果官方服务器来下载其PDF文档。所以还是得需要一个好网络。

    在大概了解了ios的开发文档后,我们就可以按照自己的需求去查看各个部分的文档了。

    这里呢,我给像我一样的初级开发者先看看第一篇开发文档:
    马上着手开发IOS应用程序(Start Developing ios APP…),o(╯□╰)o,难道有汉字版本的???没错,且看:
    在 ios开发文档的General—>Guides的最下面。
    这里写图片描述

    关于ios开发文档就先简单介绍到这。在后续学习开发中我会结合开发文档来进行编写叙述。

    展开全文
  • iOS开发文档(中文)

    2015-09-30 16:55:59
     做这个笔记本主要是重新熟悉一下iOS开发,因为之前学的东西太乱太杂,没有一个详细的学习顺序,所以正好将苹果官方的iOS开发文档进行一下翻译,达到学习和锻炼英语的能力。苹果iOS开发原网址是:...
         本文主要转载:http://ourcoders.com/thread/show/117/

    目的

            做这个笔记本主要是重新熟悉一下iOS开发,因为之前学的东西太乱太杂,没有一个详细的学习顺序,所以正好将苹果官方的iOS开发文档进行一下翻译,达到学习和锻炼英语的能力。苹果iOS开发原网址是:https://developer.apple.com/library/ios/navigation/#section=Resource%20Types&topic=Getting%20Started.

    文档结构介绍

            当我们打开上面的网址时,显示的是如下所示的结构:


               然后我们看,文档内容区域的左侧导航栏区域,这里揭示了文档库的结构,如下图区域1。
               区域1的介绍:       
    •  Getting Started —— 新手入门,一般来说,是给完全的新手看的。建议初学者看看,这里面有一些建立观念的东西,有了这些建立观念的东西,后面的学习就比较容易了。
    •  Guides —— 指南,指南是Xcode里面最酷最好的部分,学会看指南则大多数情况完全不用买书。Xcode文档里面的指南,就是一个一个问题的,从一个问题,或者系统的一个方面出发,一步一步详细介绍怎么使用Cocoa库的文档。一般程序员比较熟悉的是Reference,就是你查某个类、方法、函数的文档时候,冒出来的东西。那些其实是一点一点的细碎知识,光看那些东西就完全没有脉络。而Guides就是帮你整理好的学习的脉络。
    • Reference —— 参考资料。一个一个框架一个一个类组织起来的文档,包含了每个方法的使用方法。
    •  Release Notes —— 发布说明。一个iOS新版本带来了哪些新特性,这样的信息,熟悉新iOS,比较不同iOS版本API不同,都需要参考这些文档。
    •  Sample Code —— 示例代码。苹果官方提供的一些示例代码,帮助你学习某些技术某些API。非常强烈建议学习的时候参考,一方面光看文档有时候还是很难弄明白具体实现是怎么回事儿。另外一方面这些示例代码都是苹果的工程师写的,你从示例代码的变迁可以看到苹果官方推荐的代码风格流变。
    •  Technical Notes —— 技术说明。一些技术主题文章,有空的时候可以浏览一下。往往会有一些收获。
    • Technical Q&A —— 常见技术问答。这是技术社区里面一些常见问题以及回答的整理。
    • Video —— 视频。目前主要是WWDC的视频,实际上是登录到开发者网站上去浏览的,这里就是快捷方式。想深入学习的话,一定不能错过,大量的看,不仅可以学好技术,还可以练好英文。
               总结一下,这里面的Reference、Release Notes、Sample Code、Technical Notes、Technical Q&A,一般来说只是备查的。主要要看的是Getting StartedGuides 
               然后下面是Topics,也就是话题,被分为:
    • Audio & Video —— 音视频
    • Languages & Utilities —— 语言和工具,Objective-C的一些知识,App Store的管理工具等。
    • Mathematical Computation —— 数学计算。
    • Xcode
    • Data Management —— 数据管理。
    • General —— 一般性的问题。
    • Graphics & Animation —— 图形和动画。
    • Networking & Internet —— 网络问题。
    • Performance —— 性能。
    • Security —— 安全。
    • User Experience —— 用户体验。
                    这里不多说,大多数都是顾名思义的问题。但是值得一提的就是有很多初学者说,我想好好了解下图形和动画的技术,但是文档里面找不到,这就只能说,你睁着大大的眼睛,为毛左看右看
              看不到呢?
              最下面是Frameworks(框架),分为:
    • Cocoa Touch Layer
    • Media Layer
    • Core Services Layer
    • Core OS Layer
                    这里我们先不讨论这个东西,后面会仔细讲。
                   总体来说左边的导航区域就是用三种不同的维度,来帮你精准定位你需要的内容。
                   现在我们看内容区域的右边。注意上面的文档过滤器。如下图:
                    

                   假设,你现在想看关于性能方面的Guides,那么你应该做的就是在左面的导航,点击Topics -> Performance,然后在右边的文档过滤器上面输入Guides。或者你也可以在左边的导航,点击
             Resource Types -> Guides,然后在文档过滤器里面输入 Performance。
                  熟练使用导航和文档过滤器的话,学习就会非常方便快捷。

     文档导读

              前面我们讲Xcode的文档结构是在介绍如何能够快速定位到你要找的内容。但是很多人的问题可能是一开始就根本不知道要读什么。
              这里我们就介绍自学iOS开发应该遵循或者说我们推荐的必读文档的阅读顺序。
              阅读顺序:
        1. 《马上着手开发 iOS 应用程序 (Start Developing iOS Apps Today)》
        2. 《Your First iOS App》
        3. 《Your Second iOS App: Storyboards》
        4. 《Your Third iOS App: iCloud》
        5. 《iOS Technology Overview》
        6. 《iOS Human Interface Guidelines》
        7. 《Learning Objective-C: A Primer》和《Programming with Objective-C》
        8. 《iOS App Programming Guide》
        9. 《View Programming Guide for iOS》和《View Controller Programming Guide for iOS》
        10. 《Table View Programming Guide for iOS》
          首先应该看的是Getting Started里面的《马上着手开发 iOS 应用程序 (Start Developing iOS Apps Today)》(中英文版本皆有,苹果官方的翻译)。这个文档讲的很浅,但是是建立概念的文档,     你以后在开发里面经常遇到的概念,在这里都有包含,特别注意是,这个文档看起来简单,但是每页下面的相关文章,不是选读,都是必读。
           即使是很多做了iOS开发很久的同学,其实也有很多概念上的误解,现代程序开发越来越简单,工具越来越强大,往往有些误解也可以继续前行,但是实际上不建立扎实的基础是很吃亏的,往往后    
    面理解和解决一个不难解决小问题都要付出很多辛苦。
         阅读这个文档的目的和检测标准是,以后你看到iOS开发中的基本概念,都大致所有了解。
         读完《马上着手开发 iOS 应用程序 (Start Developing iOS Apps Today)》后,应该去看Your XXX iOS App系列这个系列不是什么很难的文章,你也不必着急先去学习Objective-C,学什么C语言就更不要着急。我推荐的学习方法是有成就的逐步学习法。在学习系统体系架构、Objective-C之前,你可以先按照文档写一个全天下最简单的App,完成学习过程中第一个里程碑。在这个过程中不用担心有什么疑问,有什么不懂,先照着做就是。
         阅读这三个文档的目的和检测标准是,把这三个Demo App做出来在模拟器上跑起来。
         在这个过程中,你对开发工具的基本认识就建立起来了,也有了成就感,去了魅(就是消除了对iOS开发的神秘感)。
         再往下,建议你去看《iOS Technology Overview》(iOS技术概览),iOS不是一个技术,而是一堆技术,前一篇讲到文档导航区域的分类,框架分类的时候,我说不细讲的原因就在于此,你要做一个动画应该用Core Animation还是OpenGL?你要做一些文本相关操作应该用Core Text还是什么,就是看这里。
         学习现代的程序开发,语言和框架并重。我们Tiny4Cocoa叫做这个名字的原因就是,iOS/Mac开发者的代表往往就是这个Cocoa框架,就是这个SDK。大多数你所需要的功能都躺在框架里面,你知道框架的结构,你才知道怎么去寻找相关的技术资料。
         阅读这个文档的目的和检测标准是,遇到具体问题,知道应该去看哪方面的文档。
         再下来,建议阅读的是《iOS Human Interface Guidelines》,Mac/iOS平台虽然也是百花齐放各类程序、App都有,但是总体看来,大多数优秀App的UI看起来都和整个系统很协调。这和Windows以及很多其他平台完全不同。这是为什么呢?
        很大程度就归功于《Human Interface Guidelines》文化,所谓Human Interface Guidelines就是用户界面的规范,在苹果它还专门有一个缩写叫做HIG,是天条一样的东西。所有的App都推荐遵循HIG,遵循了HIG,你做的东西用户看起来就会觉得和整个系统很协调。即使是你要做一些创新的设计,你势必会打破HIG的限制,但是你这个时候仍旧应该遵循HIG的精神。
         此外,你阅读HIG的很重要一点是了解整个UI结构和UE行为的逻辑机理,这样才能在你设计界面的时候有所依据。
         阅读这个文档的目的和检测标准是,看到任何一个App,你可以知道它的任何一个UI是系统控件,还是自定义控件,它的层次关系等等。
         《Learning Objective-C: A Primer》是非常初级和简单的入门,适合先阅读。《Programming with Objective-C》超微复杂一点点,适合后阅读。
         一般人建议先学习语言,我反之建议先做了一个App,然后再学习语言。原因有几个,首先现代开发工具,往往不是用来开发控制台程序的,上来就会有框架,光懂语言不会使用IDE,甚至可能会更麻烦。再其次就是,其实现代语言发展到了面向对象以后,库往往比语言更复杂,更重要,或者说更多的时候,我们是在学习库,而不是语言,语言只是库的一个载体。
          比如,Delegate和Block等等都和Cocoa的UI异步机制关系紧密,光看代码,这些语言元素非常难以学习,也完全不知道其意义在哪里。
         阅读这个文档的目的和检测标准是,看得懂基本的Objective-C代码,方便后面的学习和阅读各种示例代码。
         《iOS App Programming Guide》基本上介绍的就是开发一个App的完整流程,包括App的生命周期、休眠、激活等等,里面介绍的细节颇多。正式开发第一个上线的App之前必看。或者开发了一个App,临到提交前必看才文档。
         阅读这个文档的目的和检测标准是,了解全部流程和很多细节问题。
         《View Programming Guide for iOS》和《View Controller Programming Guide for iOS》非常重要。View是整个图形界面里面最重要的概念。所有的图形、界面绘制都基于View。你看到的一切复杂的用户界面,就是各种不同的View的组合堆叠。
         View Controller是View和某种逻辑在一起的组合,本质上这种组合不是必须的,但是是大大降低编程复杂度的一种设计。很多人不懂什么是View什么是View Controller,这样写起代码来就很痛苦。
         阅读这个文档的目的和检测标准是,深刻理解什么是View,什么是View Controller,理解什么情况用View,什么情况用View Controller。
         UITableView是最重要的一个控件,是最常用的UI界面元素。在UICollectionView出现之前,大量的内容列表展示的自定义控件都是基于UITableView,比如很多书架、图片Grid其实都是UITableView做的。
         所以《Table View Programming Guide for iOS》非常重要,一定要好好阅读。
         阅读这个文档的目的和检测标准是,深刻理解UITableView/UITableViewController的理论和使用方法。
         我推荐的必读文档就这么多,仔细看的话,最多也就是今天就看完了。学习一个东西,如果有一点点耐心,有正确的方法其实不难,不是说脑子非要很聪明,大多数人都可以做到一个星期就学会iOS开发,其实就是读完这些文档,大多数人就会了。
         就像我强调了无数次,阅读英文文档不难,我自己从当年看英文文档非常吃力,必须查词典开始,认真的看英文文档,不会就查词典,一个多月过去,读英文文档就完全不需要查词典了。
         我们公司主程 @sycx 老师,也说他原来英语也很不好,甚至现在英语仍旧很烂,但是看英文文档完全没有问题,也就是几个星期的认真学习以后就突破了。
         其实学习iOS也如此。当然我不是说你看懂这10组文档就再也不用看别的了。而是说,如果你看懂了这10组文档,你就从初学者,或者是虽然会写一些程序,但是对iOS其实还不懂的状态,变成了一个入门者。
         我不希望这个文章可以一句一句的帮你学会iOS是什么,这个文章的目的是帮你快速入门。一旦你入门了,你再遇到问题该看什么,你就不需要我讲了,你自己就知道了。一旦入门了,你就会发现,Xcode里面别的文档讲的内容虽然不同,但是结构你已经很清楚了,你学习起来很方便。
         阅读本文的目的和检测标准是,遇到问题,知道看什么文档,想提升自己技术的时候,知道按照什么脉络自己组织阅读。
         

    如何查询文档

    最快捷的查询帮助文档的方法是不需要键入任何关键词的。你只需要在Xcode代码编辑器里,按住Option键,然后点击你想查询的关键词,就会获得关键词的帮助信息。如下图:

       

    帮助信息会包括,一些简单的描述、哪个iOS操作系统开始提供,头文件,参考文档。头文件和参考文档是可以直接点击的。

    即使你点击的关键字不是Cocoa库的内容,是自己代码里面的类或者方法,也可以获得相关的定义信息。如下图:


    与之相关的热键是Command键加鼠标点击,即可跳到任何一个类名或者方法名的所定义的头文件。

    快速查询帮助的另外一个方法是直接打开Quick Help栏,如下图,首先找到“右侧栏开关”,然后找到“Quick Help”开关即可打开。


    Quick Help栏的作用机制是,只要它在打开状态,只要输入光标在什么关键字上,Quick Help栏就会显示跟关键字相关的简要帮助信息,跟Option键加点击的信息基本一致,但可能略微丰富一点。

    写代码的时候,在大多数情况下,查询下快速帮助,看看头文件,就足以了。

    搜索帮助

    文档阅读界面最左面的上端的放大镜按钮就是搜索界面。下图是我们搜索uiimage,得到的搜索结果。


    首先值得注意的是,结果也是分类的,分为Reference、System Guides、Tools Guides、Sample Code这四类。类别很利于我们快速找到我们需要的信息。前面已经介绍过类别,跟那个基本一致,参照即可。

    另外需要注意的是,搜索框下面的选项,首先是Hits Must(什么样的结果才会命中),包含了三项:

    1. contain search term 这是最常见的就是结果包含搜索词
    2. start with search term 由搜索词开始
    3. match search term 必须完全匹配搜索词

    然后是Languages(语言选项),包含Javascript、C++、Java、Objective-C、C语言。

    然后是,Find in(在哪些文档库搜索),包含了你Xcode里面安装的全部文档库。

    阅读文档

    最后,我们简单介绍下怎么阅读文档。文档的阅读界面如下图:


    值得注意的是,标题下面这几样:

    1. Inherits from 继承关系,继承自
    2. Conforms to 遵循什么协议
    3. Framework 属于什么框架
    4. Availability 从什么iOS版本开始支持
    5. Declared in 头文件
    6. Related sample code 相关例子代码
    7. Companion guide 相关的指南(UIImage没有,很多其他的类有)

    在其次一个很重要的东西,其实是标题上面那一条窄窄的导航栏,那是一个多层树状导航栏,看文档的时候,可以点击那个栏的不同位置浏览。


    其实这个栏包含了整个文档库的组织结构树状图,可惜只有在这个界面才能浏览。有兴趣的可以慢慢浏览,里面信息量其实非常大。 
    展开全文
  • iOS中的文件管理操作

    2015-08-04 09:51:05
    一、iOS中的沙盒机制iOS应用程序只能对自己创建的文件系统读取文件,这个独立、封闭、安全的空间,叫做沙盒。它一般存放着程序包文件(可执行文件)、图片、音频、视频、plist文件、sqlite数据库以及其他文件。每个...
  • 可能大家印象比较深刻的就是iOS11新增了增强现实的框架ARKit和安卓玩了几十年都玩烂了的文件管理系统,那么除此之外iOS11又新增了哪些功能呢?这正是文本要介绍的。 本文翻译自苹果官方iOS11发行说明文档:...
  • iOS的沙盒机制iOS不像Android,没有SD卡概念,不能直接访问图像、视频等内容。iOS应用产生的内容,如图像、文件、缓存内容等都必须存储在自己的沙盒内。默认情况下,每个沙盒含有3个目录:Documents, Library 和 tmp...
  • vs2017开发IOS 实时效果

    2018-11-20 17:30:16
    在之前有介绍过xamarin 单独IOS项目开发的运行环境搭建,但是这段时间我看到了xmarin forms 3.0  这东西竟然可以做都使用C#开发IOS、Mac、安卓、UWP) APP应用,而且还是UI和逻辑都是共用一份。 这就很强大了...
  • iOS 11开发教程(二)编写第一个iOS 11应用
  • 此外、面向对象、结构体、类Class,以及手动内存管理、自动内存管理、协议与抽象类型、错误处理、iOS开发中的常见概念、Xcode操作、多媒体编程、网络编程、数据解析和加密、Sqlite数据库、多线程编程、内购等实用...
  • 点击标题下「异步社区」可快速关注iOS是一个强大的系统,被广泛地应用于苹果公司的系列产品iPhone、... 1.1 iOS系统介绍iOS是由苹果公司开发的手持设备操作系统。苹果公司最早于2007年1月9日的Mac World大会上公布...
  • iOS开发帮助文档可以在苹果开发者中心在线查看,也可以在Xcode本地查看。 苹果开发中心在线查看示例图: 传送门:https://developer.apple.com/library/ios/navigation/ 网页导航栏可以搜索所有 iOS开发...
  •  目前移动端开发市场上引导开发者追求技多不压身,一个全栈开发者至少要懂后台服务器、数据库、Android、web、ios开发等。“一超多强”是指开发者先成为一门技术的专家然后掌握了解多门技术,这是一种好的发展趋势...
  • IOS ARKit开发文档

    2017-06-07 11:57:38
    苹果在自家的开发组件中加入ARKit,降低了增强现实的开发难度,效果却提高了很多,并且结合自家的硬件,使最终产生非常棒的视觉效果。这也加快了AR技术在各行业的技术落地,使AR技术在实际生产工作中有了更深的切入...
  • 最近发行iPhone8和11月份要出售的iPhone X又...这也使得许多开发者们跃跃欲试的想要成为一名iOS的开发者,据美国的一项调查显示,iOS开发薪资高达$80,399 /年,如果你也想成为一名ios开发,那么这篇文章就是为你量身打
  • 2.加载本地文件,可以直接使用同步方法,比较简单 3. 加载要下载文件的头部信息,HEAD方法 -(void)demo1{ NSURL * url = [NSURL URLWithString:@&amp;amp;quot;http://127.0.0.1/abc.json&amp;amp;quot;]; ...
  • iOS开发工作干什么

    2019-04-09 09:53:05
    iOS开发工作干什么&如何学习iOS开发&什么样的程度可以找工作&iOS开发前景 1.iOS开发工作干什么? 我个人了解的obj-c开发可分为:Mac- MacOS app,iphone/ipad - iOS app开发 两大主流,比较偏的还有越狱...
  • 如果想在Mac上快速开发iOS应用程序,则必须学会使用这个强大的工具的方法。在本文容中,将详细讲解Xcode 9开发工具的基本知识,为读者步入本书后面知识的学习打下基础。 1.1 基本面板介绍 使用Xcode 9打开一个iOS...
1 2 3 4 5 ... 20
收藏数 94,142
精华内容 37,656