看一下你写的规则是怎么样的,这个就是重写一个方法
调用 sort() ,只会默认排序方式,写一个函数或者闭包的话,可以自定义排序方式。
看这个主要是学习的是语法 至于 更新换代掉的方法或者属性 可以直接查看官方文档
转换成NSString后用range(of:"ll")来实现,返回的是一个NSrange,
例如:
var sadn = "hello"
(sadn as NSString).range(of: "ll") //得到的结果:{2,2}
//如果看不懂上面的NSrange,可以使用以下方法
(sadn as NSString).range(of: "ll").location //得到的结果:2
//补充,可以使用contains(str:String )来判断字符串是否包含这个元素,
(sadn as NSString ).contains("ll") //得到的结果:True
自己犯傻写错了!!!?
值类型存储在栈区,这块区域你不需要管理,编译器会管理,引用类型也没那么可怕,只要让其中一个对象改为弱引用就不用担心了.
请参考5-2的1:44前后。这里说的是参数类型Int和返回值类型Bool都是冗余的,可以不写。言外之意就是进入一定是Int,返回一定是Bool而不是String。
网络获取来的数组可能是空的,所以在findMaxAndMain里进行了guard处理,保证不为空。所以findMaxAndMain函数的参数也不用声明为可选型,
这些英文一般都是很基本、很常用的,要翻查一下再记住。
快来围观这个课程的官方代码仓,更有高中小牛将这个课程的代码全部修改支持Swift4了哦:)
一个可选类型就像是一个包裹,这个包裹里面装了两个东西,一个是炸弹(nil),一个是value,现在假设你知道里面是value就直接打开这个包裹(强制解包,需要程序员自己判断,可以在定义变量的时候使用! 在后面使用的时候就不用解包了),就拿到了这个东西,当你不确定里面是什么(这时候可!可?),你直接把包裹打开,拿到里面的东西,如果是炸弹(nil),程序crash了,当不确定是否一定有值时还是用?吧
因为error3里只包含了 errorCode , errorMessage ,不包含nil
如果要验证error3是不是可选型l,应该是error3 = nil
毕竟Swift是一个强类型语言,nil作为一个单独的数据类型就决定了必须用解包来使用可选型变量,这保证了这门语言的安全。为了安全这点拷贝应该是不足一提的吧,而且,这个对象的使用范围仅在解包后的大括号里,理应不会占据多少内存。
删除相应键值对,然后重新添加一个,改变key,不变值
语法没有问题,应该是缓存,退出重新打开应该就可以了
明白了不需要回答了。
申明的class是country, 但是你在class City中写的是Country. 注意下大小写!
func toBinary( num:Int)->String{
var num = num
var res = ""
repeat{
res = String(num%2) + res
num /= 2 //2需要是个Int类型
}while num != 0
// while后面没有大括号
return res
}
闭包就相当于OC种的Block,可以用来返回,也可以用来传参,多练习练习就能明白其中的意义了
可以这样说吧。object-c中NS开头的都是类,比如NSString,NSArray,而swift中的String Array Int 是结构体。
func sayHello(to name:String = "Playground", withGreetingWord greadting:String = "Hello", punctuation:String = "!") -> String {
return "\(greadting),\(name)\(punctuation)"
}
sayHello()
sayHello(to: "OC", withGreetingWord: "Bye", punctuation: "!!!")
XCODE8 刚才手动试了下, 是不可以交换位置了
哪里错了?
????把你代码 粘进来……
直接调用函数的时候就需要写外部参数,比如你直接调用calc1(weight:5)就一定要,let calc = calc1 这样定义一个函数常亮再调用的时候就不需要
import UIKit import XCPlayground import PlaygroundSupport var wrap = UIView(frame: CGRect(x: 0, y: 0, width: 300, height: 300)); var rect = UIView(frame: CGRect(x: 0, y: 0, width: 50, height: 50)); rect.center = wrap.center; rect.backgroundColor = UIColor.red; wrap.addSubview(rect); //animation UIView.animate(withDuration: 3){ rect.backgroundColor = UIColor.green; rect.frame = wrap.frame; }; //XCPlaygroundPage.currentPage.liveView=wrap; PlaygroundPage.current.liveView=wrap;
where 去掉加上 , 即可