0 امتیاز
قبل در برنامه نویسی توسط (1.1هزار امتیاز)
دوباره دسته بندی کردن قبل توسط

انواع داده مثل NSString یا NSNumber چه تفاوتی با انواع پایه مثل String یا Int در Swift دارد؟

1 پاسخ

0 امتیاز
قبل توسط (1.1هزار امتیاز)

NSString و NSNumber انواع داده اولیه در Cocoa و Cocoa Touch هستند که با Objective-C تولید شده اند، برای اینکه امکان برنامه نوسی برای iOS و OS X با استفاده از Swift وجود داشته باشد امکان تبدیل این انواع داده به یکدیگر وجود دارد، به این انواع داده که مشترک هستند و قابل تبدیل به یکدیگر هستند bridged data type می گویند.

برای مثال با استفاده از کد زیر می توان مقدار یک شئ NSNumber را درون یک متغییر Swift ذخیره کرد:

let n = NSNumber(3.5)
let l = n.intValue
قبل توسط (35 امتیاز)
+1
البته String و دیگر تایپ‌های Swift از جنس Value هستند و اکثر تایپ‌های obj-c از جنس کلاس که همین باعث میشه call by reference باشن درحالی که value های swift با Copy On Write(Cow) فرستاده می‌شوند به توابع مختلف.
و از Swift3.0 به بعد، راه صحیح استفاده برای bridge بین برخی تایپ‌های obj-c و Swift به طریق زیر است:
let n: NSNumber = 3
یا
let n = 3 as NSNumber

سوالات مشابه

0 امتیاز
1 پاسخ 739 بازدید
0 امتیاز
1 پاسخ 456 بازدید
0 امتیاز
1 پاسخ 891 بازدید
+1 امتیاز
3 پاسخ 812 بازدید
...