博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
8.改进应用程序
阅读量:6501 次
发布时间:2019-06-24

本文共 3442 字,大约阅读时间需要 11 分钟。

hot3.png

##8.1数字格式设置(storyboard) 输入图片说明输入图片说明 ##8.1.2可选类型拆封

import Cocoaextension Double{	var dollars : String{		let formatter : NumberFormatter = NumberFormatter()//NSNumberFormatter弃用		var result : String?//将result的类型声明为可选类型		formatter.numberStyle = .currency		result = formatter.string(from: NSNumber(value:self))//		.string(from: NSNumber)返回为可选类型,因为如果转换失败会返回nil		if (result == nil){			return "FORMAT FAILURE!"		}		return result!//拆封可选变量,拆封指的是将变量转换为值不能为nil的变量	}}class ViewController: NSViewController {	//"!"为隐式封拆的可选类型,相当于告诉编译器,在该变量为nil时绝不会访问它	@IBOutlet weak var loanAmountField :NSTextField!	@IBOutlet weak var interestRateField : NSTextField!	@IBOutlet weak var yearsField : NSTextField!	@IBOutlet weak var resultsField : NSTextField!	var simpleInterestCalculator : SimpInterest = SimpInterest()	var compoundInterestCalculator : CompoundInterest = CompoundInterest()	override func viewDidLoad() {		super.viewDidLoad()	}	override var representedObject: Any? {		didSet {				}	}	[@IBAction](https://my.oschina.net/u/866341) func buttonClicked(sender : NSButton){		var result : Double		result = simpleInterestCalculator.calculate(loanAmount: loanAmountField.doubleValue, interestRate: interestRateField.doubleValue , years: yearsField.integerValue)//		self.resultsField.stringValue = result.description//description让类能够返回其数据的String表示		self.resultsField.stringValue = result.dollars	}	@IBAction func compoundbuttonClicked(_ sender: NSButton) {		var result : Double		result = compoundInterestCalculator.calculate(loanAmount: loanAmountField.doubleValue, interestRate: interestRateField.doubleValue , years: yearsField.integerValue)		//		self.resultsField.stringValue = result.description//description让类能够返回其数据的String表示		self.resultsField.stringValue = result.dollars	}}

8.2单元测试 if Use of undeclared type 'SimpInterest' take class Target Membership choose

import XCTestclass MACSwiftTeststwo: XCTestCase {	var mySimpInterestCalculator : SimpInterest = SimpInterest()	var myCompoundInterestCalculator : CompoundInterest = CompoundInterest()	    override func setUp() {        super.setUp()        // Put setup code here. This method is called before the invocation of each test method in the class.		//在这里插入设置代码,调用这个类中的每个测试方法前,都将调用这个方法    }        override func tearDown() {        // Put teardown code here. This method is called after the invocation of each test method in the class.		//在这里插入清理代码,调用这个类中的每个测试方法后,都将调用这个方法        super.tearDown()    }	//功能测试用例	func testSimpleInterest(){		var result : Double		result = mySimpInterestCalculator.calculate(loanAmount: 25_000, interestRate: 0.08, years: 10)		XCTAssertEqualWithAccuracy(result,45000,accuracy:0.1 ,"Unexpected result \(result)")//1.要评估的变量 2.该变量应包含的值 3准确因子 4.未通过测试时显示的String		//传入的变量和预期结果相差不超过0.1	}	func testCompoundInterest(){		var result : Double		result = myCompoundInterestCalculator.calculate(loanAmount: 25_000, interestRate: 0.08, years: 10)		XCTAssertEqualWithAccuracy(result, 25002+0.1, accuracy: 0.1,"Unexpected result \(result)")		}    //示例测试方法//    func testExample() {//        // This is an example of a functional test case.//        // Use XCTAssert and related functions to verify your tests produce the correct results.//    }//    //    func testPerformanceExample() {//        // This is an example of a performance test case.//        self.measure {//            // Put the code you want to measure the time of here.//        }//    }	}

转载于:https://my.oschina.net/u/2319073/blog/861682

你可能感兴趣的文章
香蕉派,banana pi PBI-M3 原理图和GITHHUB代码服务器正式发布
查看>>
使用homestead执行yarn add jquery --save命令报错解决方案记录
查看>>
从URL下载文件的方法
查看>>
python-文件处理
查看>>
两个获取ipa资源文件的办法
查看>>
centos6 python3 django-uwsgi-nginx 环境搭建02-之uWSGI
查看>>
更换eclipse任务栏图标
查看>>
Notepad++ 也支持 TypeScript 了
查看>>
Android Camera 相机开发详解
查看>>
利用 squid 反向代理提高网站性能原理总结
查看>>
&& 和 || 运算符的特殊用法记录
查看>>
eruke注册中心搭建
查看>>
c++,lua交互
查看>>
Linux Shell: 统计系统中占用Swap 的程序PID和占用大小
查看>>
Java通过JNI的方式调用C
查看>>
AOSuite V3.0 发布,开源JavaEE快速开发平台
查看>>
myeclipse提示“Project must be an XFire project”
查看>>
layui 之 upload组件
查看>>
进阶Java架构师必看的15本书
查看>>
uva 400 - Unix ls
查看>>