2018-06-22 10:06:01 zenghao0708 阅读数 3582
  • iOS/Swift/OC/Objective-C/Xcode/0基础/入门

    这是一门快速入门iOS开发的课程,目的是让大家快速学会,iOS开发环境搭建,和iOS一些基础知识,最后完成一个小项目。 项目信息 提供完整的Git提交历史,和每节视频一一对应,目前有41次提交,355行注释,271行代码(不包含可视化布局文件,纯Swift和Objective-C代码)。

    2971 人正在学习 去看看 任苹蜻

今天的主角就是开发者接触最多的 Xcode 10 beta,详细内容可以参考 WWDC 18 Session ,同时可以看下 Xcode 10 的 release note, 官方文档永远是学习新内容的第一手资料。

Xcode 10 beta 在 WWDC 18后就对开发者开放下载了,WWDC 18的新内容不多,Apple 今年把主要精力放在 Bugfix和性能优化上面,还这几年欠下来的技术债,关于 iOS 11的诟病一直不绝入耳,不得不说,Apple 今年的决策还是比较明智的。

我们项目现在是 OC 和 Swift 混编,Xcode 版本是9.4.1,swift 4,平时用公司的 iMac Late 2013编译感觉有点吃力,用自己的 MBP 14则编译速度足够去喝杯咖啡,享受人生。

我尝试把自己的主力机(iPhone 7)升级到 iOS 12后,内心抑制不住冲动把14年的 iPhone 6也升级下 iOS 12试试,重新体会到了之前 iOS 的那种流畅,真的是老泪纵横。平时 iPhone 6只能沦为测试手机,跑跑单元测试啥的。

升级了 iOS 12后,Xcode 9已经不能进行调试了,本着生命不息,折腾不止的精神,顺带体验了一下 Xcode 10的各种新功能,总结了一下升级 Xcode 10过程中踩的坑。

  • Xcode 10 beta 版本迁移指南:

    • 指定 swift版本:4.1,Xcode 10使用的是 swift 4.2版本,而 Xcode 9.4则使用 Swift 4.1,基本改动不大,为了兼容 Xcode 9,这里统一使用 Swift 4.1。
    • podfile设置如下:

      • config.build_settings[‘SWIFT_VERSION’] = ‘4.1’
    • Xcode 项目设置:

      • SWIFT_VERSION为 swift 4
    • Xcode command tool设置: 使用 Xcode 10
      • sudo xcode-select –switch /Applications/Xcode-beta.app
      • xcodebuild -version可以查看
  • Xcode 10.0
  • Build version 10L176w
  • 更新部分 pod 库:
    • RACObjcBridge/RACObjc升级到3.1.0,之前是3.0.0版本,swift 版本导致需要升级。
    • 删除 Tencent SDK pod spec 中的s.resource_bundle字段,参见 xcode 10 beta release note。多个相同的输入文件导致冲突,这个也是 xcode 10新增的功能,为了加快编译速度,对编译依赖检测得很严格。
    • 使用 Carthage 的话,则需要指定手动指定 Swift 版本:
      • carthage update –platform iOS –toolchain com.apple.dt.toolchain.Swift_4_1 –no-use-binaries REPO_NAME
  • 更新 swift lint: disable identifier_name

  • 其他错误:

整个升级过程中,需要注意的几点:

  • 及时清理 DerivedData目录,由于整个编译过程中会产生众多的中间文件,非常容易导致编译依赖检测出错。
  • 更新 carthage framework和使用 pod install 重新编译第三方库。
  • New Build System: Xcode 9.4引入了 preview 版本,Xcode 10则是默认开启,开启后,编译速度确认有所提升,但是也会导致一些比较奇怪的编译问题,上面只是记录了笔者遇到的几个问题。
  • 完成升级后,Xcode 9.4和 Xcode 10 beta 可以共存,笔者使用 Xcode 10 beta,其他开发同事继续使用 Xcode 9。
2017-10-14 09:36:04 SarielAngel 阅读数 233
  • iOS/Swift/OC/Objective-C/Xcode/0基础/入门

    这是一门快速入门iOS开发的课程,目的是让大家快速学会,iOS开发环境搭建,和iOS一些基础知识,最后完成一个小项目。 项目信息 提供完整的Git提交历史,和每节视频一一对应,目前有41次提交,355行注释,271行代码(不包含可视化布局文件,纯Swift和Objective-C代码)。

    2971 人正在学习 去看看 任苹蜻

本文为个人学习笔记(2017.10.14)

因为Xcode和Swift更新太快,网上找到的内容经常存在过期的问题,所以只好自己边百度边摸索边记录了。

目前配置为:

系统:macOS Sierra

IDE :Xcode 9.0 (9A235) 

语言:Swift 4



为View添加导航栏


在Storyboard中选中View画面




修改导航栏属性


在导航栏所在的ViewController

viewDidLoad()方法里


//去掉NavigationBar的背景
        self.navigationController?.navigationBar.removeFromSuperview()
        //修改导航栏背景色
        self.navigationController?.navigationBar.barTintColor =
            UIColor(red: 230/255, green: 123/255, blue: 114/255, alpha: 1)
        
        //修改导航栏文字颜色
        self.navigationController?.navigationBar.titleTextAttributes = [NSAttributedStringKey.foregroundColor: UIColor.white]

//设置导航栏图片(右侧)左侧应改为left

var img = UIImage(named: “你自己的图片")

img=img?.withRenderingMode(UIImageRenderingMode.alwaysOriginal)

        let item = UIBarButtonItem(image: img, style: UIBarButtonItemStyle.plain, target: self, action: nil)

        self.navigationItem.rightBarButtonItem = item






2016-10-20 06:30:41 taofei0610 阅读数 163
  • iOS/Swift/OC/Objective-C/Xcode/0基础/入门

    这是一门快速入门iOS开发的课程,目的是让大家快速学会,iOS开发环境搭建,和iOS一些基础知识,最后完成一个小项目。 项目信息 提供完整的Git提交历史,和每节视频一一对应,目前有41次提交,355行注释,271行代码(不包含可视化布局文件,纯Swift和Objective-C代码)。

    2971 人正在学习 去看看 任苹蜻

Xcode8控制台输出警告:subsystem: com.apple.UIKit, category: HIDEventFiltered, enable_level: 0

昨天更新了Xcode8,今天新建工程的时候发现控制台会多出很多log。因为前天用的Xcode7工程还好好的。所以猜测是Xcode升级之后的一些设置或者工程配置原因。

2016-09-19 21:08:37.327067 Swift03[3103:305165] subsystem: com.apple.UIKit, category: HIDEventFiltered, enable_level: 0, persist_level: 0, default_ttl: 0, info_ttl: 0, debug_ttl: 0, generate_symptoms: 0, enable_oversize: 1, privacy_setting: 2, enable_private_data: 0
2016-09-19 21:08:37.333751 Swift03[3103:305165] subsystem: com.apple.UIKit, category: HIDEventIncoming, enable_level: 0, persist_level: 0, default_ttl: 0, info_ttl: 0, debug_ttl: 0, generate_symptoms: 0, enable_oversize: 1, privacy_setting: 2, enable_private_data: 0
2016-09-19 21:08:37.349856 Swift03[3103:305160] subsystem: com.apple.BaseBoard, category: MachPort, enable_level: 1, persist_level: 0, default_ttl: 0, info_ttl: 0, debug_ttl: 0, generate_symptoms: 0, enable_oversize: 0, privacy_setting: 0, enable_private_data: 0
2016-09-19 21:08:37.376856 Swift03[3103:304970] subsystem: com.apple.UIKit, category: StatusBar, enable_level: 0, persist_level: 0, default_ttl: 0, info_ttl: 0, debug_ttl: 0, generate_symptoms: 0, enable_oversize: 1, privacy_setting: 2, enable_private_data: 0
2016-09-19 21:08:37.440966 Swift03[3103:304970] subsystem: com.apple.BackBoardServices.fence, category: App, enable_level: 1, persist_level: 0, default_ttl: 0, info_ttl: 0, debug_ttl: 0, generate_symptoms: 0, enable_oversize: 0, privacy_setting: 0, enable_private_data: 0

要解决这个问题需要去工程中去添加一项配置:工程名字 - Edit Scheme - Run - Arguments - Environment Variables,在Environment Variables下边添加:OS_ACTIVITY_MODE, value值设置为disable

2015-10-15 17:54:34 Yin_Xian 阅读数 600
  • iOS/Swift/OC/Objective-C/Xcode/0基础/入门

    这是一门快速入门iOS开发的课程,目的是让大家快速学会,iOS开发环境搭建,和iOS一些基础知识,最后完成一个小项目。 项目信息 提供完整的Git提交历史,和每节视频一一对应,目前有41次提交,355行注释,271行代码(不包含可视化布局文件,纯Swift和Objective-C代码)。

    2971 人正在学习 去看看 任苹蜻

从最基本的开始,自学并开始书写我的swift笔记.

本人现在的硬件配置为 Mac Yosemite 10.10.5

xcode 版本 xcode 7.0.1


一如既往 HollowWorld

第一步:点击xcode  点击create a new Xcode  新建一个新的工程


第二部:在Application下点击 command line Tool 然后 next


第三步: 在product name 中填写项目的名字  language 选择swift  点击next

第四步:选取项目存储位置


最后创建工程成功 自己来比对一下 swift和Object-C 的相同与不同吧










2016-01-07 11:01:04 RoyUpping_ 阅读数 411
  • iOS/Swift/OC/Objective-C/Xcode/0基础/入门

    这是一门快速入门iOS开发的课程,目的是让大家快速学会,iOS开发环境搭建,和iOS一些基础知识,最后完成一个小项目。 项目信息 提供完整的Git提交历史,和每节视频一一对应,目前有41次提交,355行注释,271行代码(不包含可视化布局文件,纯Swift和Objective-C代码)。

    2971 人正在学习 去看看 任苹蜻
  1. 在项目中右键添加一个swift文件,我添加的LearnSwift.swift
  2. 添加后Xcode弹出‘是否配置oc桥接头文件’的提示,点确认,系统自动生成一个项目名-Bridging-Header.h的文件,我的是LearnSwift-Bridging-Header.h
    配置oc桥接头文件的提示
  3. LearnSwift-Bridging-Header.h实质上是一个供swift使用的头文件,在这里把所有要暴露给swift的oc头文件都添加进去,这样写swift的时候就可以直接使用那些oc的类和方法了。
    因为swift本身没有头文件,只有.swift;而oc有.h和.m文件。有了这个声明,.swift就可以直接使用oc的.h了
    我的<code>LearnSwift-Bridging-Header.h</code>文件内容
  4. 接下来就可以直接在LearnSwift.swift中写swift代码啦 ~ 随便声明一个类,打些log:
    我的<code>LearnSwift.swift</code>文件内容
    编译直接通过,这就是在swift中使用oc类和方法了,一切顺利!
  5. 在oc中使用swift,我在AppDelegate.m中使用刚才创建的swift类,那么先要引用swift头文件,即#import "LearnSwift-Swift.h",然后在这个.m文件中就可以任意使用swift创建的类和方法了:
    LearnSwift *learnSwift = [[LearnSwift alloc] init];
    [learnSwift logsth:@"code from oc"];

    编译运行直接过! 输出:
    this is a log from swift : code from oc
  6. 理解下#import "LearnSwift-Swift.h"
    其实是项目名-Swift.h,这也是Xcode自动生成的,根据你写的所有swift代码,生成一个oc的.h文件,进行类和方法的声明,这样在oc里引用这个头文件后,就相当于引用了所有swift声明,可以直接使用了。

OC与Swift混合使用

阅读数 578

没有更多推荐了,返回首页