无意间看到巧神的文章时,感觉非常兴奋,此文章正好解决了公司目前项目的痛点。

读到以下关键一段时,不甚明了,故自己做了实验分享给有缘人。

“我们的每个课程的资源文件都具有相同的文件名,例如首页背景都叫 HomeBackgroundBg.png ,由于每个课程背景不一样,所以我们在工程中,每一个课程 target 下,通过修改Copy Bundle Resources,使其都配置有不同的(但是同名) HomeBackgroundBg.png 。这样的好处是,在代码逻辑层面,我们可以完全不用处理课程间资源文件的差异性问题。资源文件的差异性都是通过配置文件来保证的。”

我的项目代码地址:https://github.com/Dast1990/MultiTargetTest

命令行下载方法: git clone git@github.com:Dast1990/MultiTargetTest.git

克隆target方法和相关知识请看“http://www.jianshu.com/p/83b6e781eb51”

注意:不同target只能引用对应目录下的文件,如果build Phases中引用多了,选中后点-号删除多余引用,否则编译无法通过。

选中MultiTargetTest Scheme并运行时,输出1,显示目录1下对应的图片;

选中MultiTargetTianJin Scheme并运行时,输出2,显示目录2下对应的图片;

因此,也就验证了巧神文章里那一段的说法。

工程使用的是Xcode8.2.1,swift3.0,主要代码如下:

//
// ViewController.swift
// MultiTargetTest
//
// Created by 马 on 2017/3/8.
// Copyright © 2017年. All rights reserved.
// import UIKit class ViewController: UIViewController { override func viewDidLoad() {
super.viewDidLoad() print(Const.lNum1) view.addSubview(gImgV)
gImgV.center = view.center
gImgV.bounds = CGRect.init(x: 0, y: 0, width: 100, height: 100) } private lazy var gImgV : UIImageView = {
let lImgV = UIImageView() lImgV.image = UIImage.init(named: "ClannaD")
return lImgV
}() }

目录1下:

//
// Const.swift
// MultiTargetTest
//
// Created by 马 on 2017/3/8.
// Copyright © 2017年 huatu. All rights reserved.
// import UIKit class Const: NSObject {
static let lNum1: Int = 1
}

目录2下:

//
// Const.swift
// MultiTargetTest
//
// Created by 马 on 2017/3/8.
// Copyright © 2017年 huatu. All rights reserved.
// import UIKit class Const: NSObject {
static let lNum1: Int = 2
}

“使用多target来构建大量相似App”,唐巧大神理论验证(附工程代码地址)的更多相关文章

  1. 使用多target来构建大量相似App

    转自 come from : http://devtang.com/blog/2013/10/17/the-tech-detail-of-ape-client-1/ 猿题库iOS客户端的技术细节(一) ...

  2. iOS App集成Apple Pay教程(附示例代码)

    苹果在本周一发布了iOS 8.1版本,并正式开放了Apple Pay支付系统.Apple Pay是一个基于NFC的支付系统,不久将被数以万计的线下零售商店予以支持.即便这项科技并不是彻底的突破性进展, ...

  3. Android TV开发总结(一)构建一个TV app前要知道的事儿

    转载请把头部出处链接和尾部二维码一起转载,本文出自逆流的鱼yuiop:http://blog.csdn.net/hejjunlin/article/details/52792562 前言:近年来,智能 ...

  4. MontageJS:构建现代 Web App 的 HTML5 框架

    MontageJS 可以帮助您构建高可扩展性和可维护性的 HTML5 应用.有了 MontageJS,开发人员可以创建可重用的用户界面组件和模块,组件和控制器之间的绑定属性,并且同步 DOM 查询和更 ...

  5. Android TV开发总结(六)构建一个TV app的直播节目实例

    请尊重分享成果,转载请注明出处:http://blog.csdn.net/hejjunlin/article/details/52966319 近年来,Android TV的迅速发展,传统的有线电视受 ...

  6. Android TV开发总结(七)构建一个TV app中的剧集列表控件

    原文:Android TV开发总结(七)构建一个TV app中的剧集列表控件 版权声明:我已委托"维权骑士"(rightknights.com)为我的文章进行维权行动.转载务必转载 ...

  7. android app性能优化大汇总

    这里根据网络上各位大神已经总结的知识内容做一个大汇总,作为记录,方便后续“温故知新”. 性能指标: (1)使用流畅度:  图片处理器每秒刷新的帧数(FPS),可用来指示页面是否平滑的渲染.高的帧率可以 ...

  8. 高德APP全链路源码依赖分析工程

    一.背景 高德 App 经过多年的发展,其代码量已达到数百万行级别,支撑了高德地图复杂的业务功能.但与此同时,随着团队的扩张和业务的复杂化,越来越碎片化的代码以及代码之间复杂的依赖关系带来诸多维护性问 ...

  9. vue.js的app.js太大怎么优化?

    vue.js的app.js太大怎么优化? # http://nginx.org/en/docs/http/ngx_http_gzip_module.htmlgzip on;gzip_min_lengt ...

随机推荐

  1. Linux下配置Apache最大连接数

    最近有博友发现我的博客经常http 503,博客负载不大,应该不会出现负载问题,很有可能就是Apache最大连接数原因,Apache默认支持150个连接.1.先要修改最大连接数,必须了解Apache的 ...

  2. HDU-1996-汉诺塔VI

    题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=1996 其实它就是求移动的所有可能,也就是n个盘子摆在三个塔上的任何可能的种数.可以这么思考这个问题:n ...

  3. Oracle 11gR2 RAC ohasd failed to start 解决方法

    rcrCRS-4124: Oracle High Availability Services startup failed. CRS-4000: Command Start failed, or co ...

  4. OGG数据仓库以及单向复制(二)

    Configure Extract(提取)      Process in Source system 配置capture(捕获)参数 Edit extract process parameter G ...

  5. Spring mvc基本原理

    http://blog.csdn.net/xtu_xiaoxin/article/details/8796499 http://www.cnblogs.com/wawlian/archive/2012 ...

  6. Spring AOP切面的时候参数的传递

    Spring AOP切面的时候参数的传递 Xml: <?xml version="1.0" encoding="UTF-8"?> <beans ...

  7. The certificate used to sign "" has either expired or has been revoked.

    这句话的意思就是"签名"的证书已过期或已被吊销. 说白了就是有人删除了你的证书,解决的办法就是在创建一个,创建证书有两种办法,. 第一: 在苹果开发者中心,进入自己的账号,请求一个 ...

  8. Spring之循环依赖

    转:http://my.oschina.net/tryUcatchUfinallyU/blog/287936 概述 如何检测循环依赖 循环依赖如何解决 Spring如何解决循环依赖 主要的几个缓存 主 ...

  9. 【费式数列(Fibonacci数列)】

    /* 说明: Fibonacci为1200年代的欧洲数学家,在他的着作中曾经提到:若有一只兔子每个月生一只小兔子,一个月后也开 始生产.起初只有一只兔子,一个月后就有两只兔子,二个月后就有三只兔子,三 ...

  10. ProjectManager Beta 2 项目管理器发布

    上次载Alpha阶段有一个可用版本Alpha 8也在这个博客发布了,传送:http://www.cnblogs.com/deali/p/ProjectManager.html ProjectManag ...