+ محدودیت حجم فایل ارسالی: ۴ مگابایت
+ **این سوال داوری خودکار ندارد!**
+ پاسخهای خود را بصورت *Zip* ارسال کنید تا پس از پایان مسابقه توسط طراحان نمرهدهی شود.
----------
به ۷ سوال زیر پاسخ تشریحی دهید (و در صورت لزوم برنامههایی بنویسید و آنها را نیز در فایل *Zip* ارسالی قرار دهید.)
۱. باگ موجود در کد زیر را مشخص نمایید و پیشنهاد دهید چگونه می توان آن را رفع کرد؟
```
class MyCustomController: UIViewController {
var alertLabel: UILabel!
override func viewDidLoad() {
alertLabel = UILabel()
alertLabel.text = "Please wait..."
view.addSubview(alertLabel)
alertLabel.snp.makeConstraints { make in
make.edges.equalToSuperview()
}
DispatchQueue.global().async {
sleep(10)
self.alertLabel.text = "Waiting over"
}
}
}
```
۲. تفاوت استفاده از *delegate* و *notification* در چیست؟
۳. در قطعه کد زیر نوع و مقدار *result1* و *resut2* چیست؟ توضیح دهید چرا.
```
struct Month {
let name: String
let days: Int
}
let monthOfYaer = [
Month(name: "Farvardin", days: 31),
Month(name: "Ordibehesht", days: 31),
Month(name: "Khordad", days: 31),
Month(name: "Tir", days: 31),
Month(name: "Mordad", days: 31),
Month(name: "Shahrivar", days: 31),
Month(name: "Mehr", days: 30),
Month(name: "Aban", days: 30),
Month(name: "Azar", days: 30),
Month(name: "Dey", days: 30),
Month(name: "Bahman", days: 30),
Month(name: "Esfand", days: 29)
]
let result1 = monthOfYaer.map { $0.name }
let result2 = monthOfYaer.reduce(0) { $0 + $1.days }
```
۴. قطعه کد زیر را در نظر بگیرید. باگ موجود چیست و چطور بر مموری تاثیر می گذارد. چطور می توان آن را رفع کرد؟
```
class Master {
lazy var detail: Detail = Detail(master: self)
init() {
print("Master init")
}
deinit {
print("Master deinit")
}
}
class Detail {
var master: Master
init(master: Master) {
print("Detail init")
self.master = master
}
deinit {
print("Detail deinit")
}
}
func createMaster() {
var master: Master = Master()
var detail = master.detail
}
createMaster()
```
۵. توضیح دهید که *MVC* چیست؟ یک جایگزین برای آن نام ببرید.
۶. در سازنده کلاس *UITableViewCell* ، *reuseIdentifier* چه کاربردی دارد؟
```
init(style: UITableViewCell.CellStyle, reuseIdentifier: String?)
```
۷. ترجیح شما هنگام نوشتن *UI* چیست؟ فایلهای *Xib*، *Storyboards* یا ساخت ویو با کد؟
ارسال پاسخ برای این سؤال
در حال حاضر شما دسترسی ندارید.