1. 一个NSObject 对象占用多少内存?
- 占用一个指针变量所占用的大小(64bit中占用8个字节,32bit中占用4个字节)
2. AFN由那几部分构成UIkit+AFNetworking
- SessionManager
- AFHTTPSessionManager
- AFURLSessionManager
- Security
- Serialization
- Reachability
- UIKit
3. 交换x y的值 不引入第三个变量
x = x ^ y
y = x ^ y
x = x ^ y
0 ^ n = n 利用这一特性就交换了两个变量的值
4. 用位运算判断 n
是否为奇数
if (n & 1 == 1){
// true
}
5. 排名问题
问题:
成绩单排名,从1到1000个学生,分数相同则为相同排名,但下一个同学的排名相应靠后。
例如 :
排名 | 姓名 | 分数 |
---|---|---|
1 | 小明 | 100 |
2 | 小李 | 98 |
2 | 小花 | 98 |
4 | 小李 | 97 |
已知一个按照分数降序的数组,请问下标1000的人排名第几?
struct Student{
var name:String?
var score:Double?
var rank:Int?
}
// 假装已经填充了所有学生成绩😏
var students = [Student]()
var rank = 1000
func getRankFromStudents(index:Int){
if students[index].score == students[index-1].score{
rank -= 1
getRankFromStudents(index: index-1)
}else{
print("最终排名 \(rank)")
}
}