Swift和Objective-C的优缺点对比

Swift和Objective-C的优缺点对比,第1张

Swift和Objective-C共用一套运行时环境,Swift的类型可以桥接到 Objective-C (下面我简称OC),反之亦然

其次就是, OC之前的积累的很多类库,在Swift中大部分依然可以直接使用 ,当然,Swift3之后,一些语法改变了很多,不过还是有迹可循的。OC出现过的绝大多数概念,比如引用计数、ARC、属性、协议、接口、初始化、扩展类、命名参数、block等,在Swift中继续有效(可能最多换个术语)。Swift大多数概念与OC一样。当然Swift也多出了一些新兴概念,这些在OC中是没有的,比如泛型、元组。

但是:现阶段Swift能完全取代Objective-C吗?

答案是还不行。

其实到现在为止Swift离完全替代Objective-C还是很遥远,因为Apple内部一直在用 Objective-C 来做一些Framework的开发,底层也不可能用Swift实现,所以现在更多的替代是体现在外部开发。

Objective-C中循环引用也是遇到比较多的,一不小心就会导致循环引用,甚至导致内存问题

Swift

Objective-C

1,根目录下config.php中定义了数据库信息:

// DB

define('DB_DRIVER', 'mysqli')

define('DB_HOSTNAME', 'localhost')

define('DB_USERNAME', 'root')

define('DB_PASSWORD', 'qqqq')

define('DB_DATABASE', 'qqqq')

define('DB_PORT', '3306')

define('DB_PREFIX', 'oc_')

2,system>library文件夹下db.php中定义了DB类,数据库的连接方法

$this->db = new $class($hostname, $username, $password, $database, $port)

3,index.php中初始化数据库连接

$db = new DB(DB_DRIVER, DB_HOSTNAME, DB_USERNAME, DB_PASSWORD, DB_DATABASE, DB_PORT)

4,controller中调用model层定义的查询函数

$layout_id = $this->model_catalog_category->getCategoryLayoutId(end($path))

5,model层getCategoryLayoutId函数中返回查询sql结果

$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "category_to_layout WHERE category_id = '" . (int)$category_id . "' AND store_id = '" . (int)$this->config->get('config_store_id') . "'")


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/6842567.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-29
下一篇2023-03-29

发表评论

登录后才能评论

评论列表(0条)

    保存