- ios c语言调用oc方法,ios-面试-OC 方法调用的过程原理
weixin_39615419
iosc语言调用oc方法
OC中的所有方法调用,最终都是转换成runtime中的一个C语言消息分发函数:objc_msgSend(消息接收者,方法名,参数。。。)这条消息发送之后,系统会在receiver的类对象的方法列表中找这个方法,如果没找到,再到receiver的父类的方法列表中找,如此直到根类至找到为止,如果还没有找到会报出错误。(缓存:方法第一次被调用之后,方法会被存入一张缓存表,之后如果再被调用时就直接从缓存表
- 理财小知识(原创)
王玺玺
1.机会成本为了得到某种东西而失去另一种东西的最大价值。比如说把10万元存5年定期5.5%的利率,如果在5年之间利率上调到7%,也就意味着失去了更大的利益!这是定期储蓄与年金保险都存在的问题。2.利率目前:银行活期(最高:0.385%单利)<银行定期(普遍:5年2.75%单利:建设银行)<保险产品:锦绣传承(终身3.5%复利)银行定期(最高5年4.5%单利:泉州银行)<年金保险万能账户(终身2.5
- java 单利模式
sparkzyq
publicclassSingletion{privatestaticclassInnerSingletion{privatestaticSingletionsingle=newSingletion();}publicstaticSingletiongetInstance(){returnInnerSingletion.single;}}
- ios-数据库-事务
-FIGHTING-
iOS封装数据库事务回滚存储
概念事务(Transaction)是访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。事务通常由高级数据库操纵语言或编程语言(如SQL,C++或Java)书写的用户程序的执行所引起,并用形如begintransaction和endtransaction语句(或函数调用)来界定。事务由事务开始(begintransaction)和事务结束(endtransaction)之间执行的全体操
- html 绘制ios时钟,iOS-模仿苹果时钟选择控件
欧尼酱牌酱牛肉
html绘制ios时钟
最近看了苹果自带应用时钟上的时间选择工具感觉挺巧妙的,就尝试着模仿它做出一个控件工具。工程Demo运行效果如下:AppleAlram.gif根据时钟选择工具上面的功能,大概可以确定,圆环的绘制我们可以通过CAShapeLayer结合UIBezierPath绘制出来,当拖动起始点或者结束点View时,通过手势判断拖动的角度,从而改变UIBezierPath的角度,并且让起始点或者结束点View根据拖
- iOS-系统弹窗调用
MrZWCui
ioscocoamacosobjective-c学习Appleui
代码:UIAlertController*alertViewController=[UIAlertControlleralertControllerWithTitle:@"请选择方式"message:nilpreferredStyle:UIAlertControllerStyleActionSheet];//style为sheetUIAlertAction*cancle=[UIAlertActio
- 吊带裙小姐姐,成熟的是不是太早了?
花开夜雨
随着制度和生活水平的改善,现在年轻人普遍受教育程度都会比较高,而除了工作和事业,生活也不应该离开休闲的乐趣,比如说如何去打扮自己,让自己的气质与学历相符合,如果荧幕前的你不懂得如何穿搭,可以学习一下这位小姐姐。装扮是那么的美丽动人,还相当美动减龄,不一样的设计显性感美女气质,这样的穿搭真的是太美了。时尚而人性化,简单利落的版型上身效果非常好,高弹的设计给人小清新的感觉,在提升高度的同时更添几分成熟
- 单例模式:懒汉式和饿汉式
mozzm
单例模式java开发语言
所谓单利模式,即只能开启一个线程,只有一个实例,并且能够实现自我实例化,主要分为懒汉式和饿汉式。(1)饿汉式所谓饿汉式,就好比一个饿汉饿了好久,然后某一天到了餐厅,由于饿了很久,所以进入餐厅就希望所有的食物都已经准备好然后直接吃就可以。在程序中就相当于我们提前创建好了一个对象,类加载的时候就实例化并且创建对象,后续就可以直接拿来用,但是这也有个缺点,就是不管需不需要,他都会自动实例化创建对象,在一
- 如何轻松月入过万?找产品,复制粘贴文字,日出一单
刘阳光v2009406
看图找我v如何轻松月入过万?找个利润大于300的产品,每天把A平台的文字复制粘贴到BC…Z平台,日出一单即可。如何选择暴利产品?利润率最好在50%以上或者利润在300元以上的产品。比如:美容类产品、保健类产品、致富类产品、教育类产品等。原因:高利润是保障高收入很重要的一点,你一单利润在300元,一天只要成交一单,一个月也差不多近万元,如果在1元左右,就意味着你要卖出10000件,你才能赚到1万元。
- iOS-底层原理 :alloc & init & new 源码分析(二)
ios南方
(iOS底层原理文章汇总)(iOS资料大全)在分析alloc源码之前,先来看看一下3个变量内存地址和指针地址区别:分别输出3个对象的内容、内存地址、指针地址,下图是打印结果结论:通过上图可以看出,3个对象指向的是同一个内存空间,所以其内容和内存地址是相同的,但是对象的指针地址是不同的%p->&p1:是对象的指针地址,%p->p1:是对象指针指向的的内存地址这就是本文需要探索的内容,alloc做了什
- 拼多多撸纸巾抽纸,0.6-2元/单利润,创业致富
日常购物技巧呀
在当今社会,越来越多的人选择创业来实现自己的价值和梦想。然而,对于大多数人来说,创业并不是一件容易的事情。需要资金、经验、资源等方面的积累。那么,有没有一种低成本、高回报、轻松创业的方式呢?答案是肯定的!那就是拼多多撸纸巾抽纸项目。拼多多是一个非常流行的电商平台,拥有庞大的用户群体和广阔的市场前景。撸纸巾抽纸是一种非常受欢迎的产品,不仅满足了人们日常生活的需求,还有着较高的利润空间。通过拼多多平台
- 2022-04-23
简_834e
4月23日作业1.写出评判自己的五件事?并把他们转化为正面的语言。我很胖,我身材很臃肿。我不会穿着打扮,打理自己。我不会做饭,孩子们不喜欢吃我做的饭。我的原生家庭很糟糕,让我特别的自卑。我的先生对我非常不满意,我偶尔就会蹦出离婚的念头,希望给先生自由。我在有意识的运动,少吃。控制自己的体重。我每天都穿着干净。把自己收拾成简单利落的样子。只要孩子们在家,我就会从网上学习做饭的视频,在努力改进自己的厨
- iOS-半透明模态弹出框
麦穗0615
前言:学习透明模态弹出框(Controller创建弹框)目录:一、了解一下Controller的两个属性的基本知识二、基本应用三、参考文章一、了解一下Controller的两个属性的基本知识0.modalPresentationStyle&modalTransitionStyleUIModalPresentationStyleviewcontroller显示方式UIModalTransitionS
- iOS-给collection view添加header view/footer view
wsmmint
可以不像网上给出的方法那么麻烦可以直接在collectionview上面添加一个label即可在collectionview上面添加一个label如果有xib的话,需要先在collectionview那里选择sectionHeader选项在xib勾选选项
- 第三方唤醒&登陆
ceremony08
#功能说明:第三方应用或web下载/唤醒/自动登录到学习通#负责人:iOS-肖泽强,android-殷雅乐#协议版本:v1.0协议详细操作过程1.第三方应用内上架学习通2.第三方应用后台服务配置3.第三方应用用户账号对接学习通泛雅后台4.第三方应用内打开学习通完成自动登录调用方式:step2配置参数说明:fid单位id超星固定分配如:2023fidType单位类型超星固定分配如:1token用户登
- iOS-为手机添加摇一摇功能,以及 振动或者 响铃
GloryMan
title:iOS-为手机添加摇一摇功能,以及振动或者响铃date:2016-06-3016:55:10categories:CodeiOStags:AudioServicesPlaySystemSoundAudioServicesCreateSystemSoundIDtimg.jpeg//工程添加摇一摇方法#pragmamarkyaoyiyao-(BOOL)canBecomeFirstRespo
- iOS-多线程(四)-GCD定时器
xxxxxxxx_123
日常的开发中,我们经常会用到计时器。在iOS中,有三种计时器,NSTimer、CADisplayLink、dispatch_source,这三种定时器都是各有优劣。NSTimerNSTimer是使用的比较多的一种,但是精度不够,其原因如下:NSTimer加在mainrunloop中,模式是NSDefaultRunLoopMode,main负责所有主线程事务,例如UI界面的操作、复杂的运算等等,这样
- iOS-设置状态栏字体颜色的两种方案
缘來諟夢
原文http://blog.csdn.net/iosbird/article/details/52768344状态栏的字体为黑色:UIStatusBarStyleDefault状态栏的字体为白色:UIStatusBarStyleLightContent一、在info.plist中,将Viewcontroller-basedstatusbarappearance设为NO状态栏字体的颜色只由下面的属性
- 优化懒汉单利模式用双重校验锁模式
AA笏莣初芯
/*description:单例DCL设计模式也就是双重检验锁模式*/publicclassDclsingleton{privatestaticvolatileDclsingletoninstance=null;privateDclsingleton(){}publicstaticDclsingletongetInstance(){//避免不必要的同步if(instance==null){sync
- (三)设计模式之单例模式
CrixalisAs
1.单例模式概述含义:单例==一个实例;解决的问题:降低对象之间的耦合度解决方法:单例模式,即实现一个类只有一个实例化对象,并提供一个全局访问点2.优缺点主要优点:提供了对唯一实例的受控访问。由于在系统内存中只存在一个对象,因此可以节约系统资源,对于一些需要频繁创建和销毁的对象单例模式无疑可以提高系统的性能。允许可变数目的实例。主要缺点:由于单利模式中没有抽象层,因此单例类的扩展有很大的困难。单例
- iOS-仿支付宝收付款界面亮度变化+条形码二维码放大效果
Imkata
代码地址:iOS仿支付宝收付款界面亮度变化+条形码二维码放大效果一.条形码二维码放大效果支付宝的效果是点击二维码,全屏显示,并且有缓慢放大的效果,点击条形码,横向展示,缓慢放大。如果是二维码,只需要将二维码图片进行一个坐标转换,然后再使用UIView做动画,如果是条形码,还需要使用CGAffineTransformMakeRotation(M_PI*0.5);旋转,代码比较简单,可以参考如上代码。
- iOS-UIBezierPath动画之果冻动画
香橙柚子
我们今天做一个简单的贝塞尔曲线动画,做这个动画之前,我们要对UIBezierPath有简单的了解。贝塞尔曲线基础知识,可以参考下面文章:iOS-贝塞尔曲线(UIBezierPath)的使用iOS-贝塞尔曲线(UIBezierPath)详解(CAShapeLayer)效果图我们先看效果图:动画效果图动画的几个关键点ABCDQ点我们的动画其实就是ABCDQ,这五个点画的图,其中Q点是关键点,就是贝塞尔
- iOS-无限时后台
linbj
创建一个计时器放到NSRunLoop中修改UIBackgroundTaskIdentifier状态@property(nonatomic,strong)NSTimer*timer;@property(nonatomic,assign)UIBackgroundTaskIdentifierbgTask;//用于申请后台时间-(void)applicationDidEnterBackground:(UI
- iOS-代码混淆的简单demo
呵呵_7e7e
代码混淆就是将原有程序中方法名、类名或者属性名通过自定义方式给予改变,以增加app的安全性或者是为了通过AppStore的审核。经过查看资料针对修改方法名写了一个简单的demo,如有不对的地方,请各位大神不吝赐教~~参考的大神地址:https://www.jianshu.com/p/66bb2d45b3c2混淆文件解释confuse.sh脚本文件func.list需要混合的方法或者属性名codeO
- iOS 底层原理 文章汇总
ios南方
iOS底层原理文章汇总iOS底层原理objc4源码相关iOS-底层原理01:源码探索的三种方式1、对象底层:结构体+alloc分析iOS-底层原理02:alloc&init&new源码分析iOS-底层原理03:objc4-781源码编译&调试iOS-底层原理04:NSObject的alloc源码分析iOS-底层原理05:内存对齐原理iOS-底层原理06:malloc源码分析思路2、对象的本质:is
- iOS-浅谈RunLoop
梦蕊dream
前言:本文简述RunLoop相关内容,如有错误请留言指正。Q:什么是RunLoop?运行循环,在程序运行过程中循环做一些事情Q:RunLoop的应用?定时器(Timer)、PerformSelectorGCDAsyncMainQueue事件响应、手势识别、界面刷新网络请求AutoreleasePoolQ:RunLoop什么作用?保持程序的持续运行处理App中的各种事件(比如触摸事件、定时器事件等)
- 两分钟被骗五千块钱,我这可歌可泣的25岁
漫步云端_f45e
曾经总是骄傲的说,从小到大这么多年,没有丢过一分钱和任何物质上的东西,除了脸。这一次,我算是上交了这辈子的智商税。也许早点被骗过的话这一次我就能避开这个坑了,我就是那个被骗了还帮别人数钱的傻白甜。事情的经过及其简单利落。我最近要搬家了,我把不常用的东西收拾了一下,想着扔了挺可惜的,就放在某二手交易app上低价处理了。骗子一开始说因为我的店铺是新的还没认证,所以她买我的东西资金被冻结了,需要我联系客
- iOS-圆角的另外两种实现方式
良人不归_墨染锦年
-(void)ImageV1{UIImageView*imageView=[[UIImageViewalloc]initWithFrame:CGRectMake(200,200,200,200)];imageView.image=[UIImageimageNamed:@"1"];UIBezierPath*maskPath=[UIBezierPathbezierPathWithRoundedRect
- iOS 微信支付跟支付宝支付,苹果内购支付方式
Lee坚武
iOS微信支付ios微信支付iOS微信支付iOS集成微信支付iOS微信支付(客户端生成预支付订单)iOS-微信分享和支付)iOS支付宝支付iOS支付宝支付ios支付宝支付集成ios支付宝支付开发流程2020AliPaySDK-支付宝支付iOS端iOS:集成支付宝支付ios--集成支付宝钱包支付iOSSDK的方法与经验
- iOS-网络请求错误码
woo_5857
NSErrorcodesintheCocoaerrordomain.enum{NSFileNoSuchFileError=4,//文件不存在NSFileLockingError=255,//未能得到一个锁文件NSFileReadUnknownError=256,//读取错误,原因不明NSFileReadNoPermissionError=257,//读取错误是因为权限问题NSFileReadInv
- 矩阵求逆(JAVA)初等行变换
qiuwanchi
矩阵求逆(JAVA)
package gaodai.matrix;
import gaodai.determinant.DeterminantCalculation;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
/**
* 矩阵求逆(初等行变换)
* @author 邱万迟
*
- JDK timer
antlove
javajdkschedulecodetimer
1.java.util.Timer.schedule(TimerTask task, long delay):多长时间(毫秒)后执行任务
2.java.util.Timer.schedule(TimerTask task, Date time):设定某个时间执行任务
3.java.util.Timer.schedule(TimerTask task, long delay,longperiod
- JVM调优总结 -Xms -Xmx -Xmn -Xss
coder_xpf
jvm应用服务器
堆大小设置JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可用虚拟内存限制;系统的可用物理内存限制。32位系统下,一般限制在1.5G~2G;64为操作系统对内存无限制。我在Windows Server 2003 系统,3.5G物理内存,JDK5.0下测试,最大可设置为1478m。
典型设置:
java -Xmx
- JDBC连接数据库
Array_06
jdbc
package Util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class JDBCUtil {
//完
- Unsupported major.minor version 51.0(jdk版本错误)
oloz
java
java.lang.UnsupportedClassVersionError: cn/support/cache/CacheType : Unsupported major.minor version 51.0 (unable to load class cn.support.cache.CacheType)
at org.apache.catalina.loader.WebappClassL
- 用多个线程处理1个List集合
362217990
多线程threadlist集合
昨天发了一个提问,启动5个线程将一个List中的内容,然后将5个线程的内容拼接起来,由于时间比较急迫,自己就写了一个Demo,希望对菜鸟有参考意义。。
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.CountDownLatch;
public c
- JSP简单访问数据库
香水浓
sqlmysqljsp
学习使用javaBean,代码很烂,仅为留个脚印
public class DBHelper {
private String driverName;
private String url;
private String user;
private String password;
private Connection connection;
privat
- Flex4中使用组件添加柱状图、饼状图等图表
AdyZhang
Flex
1.添加一个最简单的柱状图
? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
<?xml version=
"1.0"&n
- Android 5.0 - ProgressBar 进度条无法展示到按钮的前面
aijuans
android
在低于SDK < 21 的版本中,ProgressBar 可以展示到按钮前面,并且为之在按钮的中间,但是切换到android 5.0后进度条ProgressBar 展示顺序变化了,按钮再前面,ProgressBar 在后面了我的xml配置文件如下:
[html]
view plain
copy
<RelativeLa
- 查询汇总的sql
baalwolf
sql
select list.listname, list.createtime,listcount from dream_list as list , (select listid,count(listid) as listcount from dream_list_user group by listid order by count(
- Linux du命令和df命令区别
BigBird2012
linux
1,两者区别
du,disk usage,是通过搜索文件来计算每个文件的大小然后累加,du能看到的文件只是一些当前存在的,没有被删除的。他计算的大小就是当前他认为存在的所有文件大小的累加和。
- AngularJS中的$apply,用还是不用?
bijian1013
JavaScriptAngularJS$apply
在AngularJS开发中,何时应该调用$scope.$apply(),何时不应该调用。下面我们透彻地解释这个问题。
但是首先,让我们把$apply转换成一种简化的形式。
scope.$apply就像一个懒惰的工人。它需要按照命
- [Zookeeper学习笔记十]Zookeeper源代码分析之ClientCnxn数据序列化和反序列化
bit1129
zookeeper
ClientCnxn是Zookeeper客户端和Zookeeper服务器端进行通信和事件通知处理的主要类,它内部包含两个类,1. SendThread 2. EventThread, SendThread负责客户端和服务器端的数据通信,也包括事件信息的传输,EventThread主要在客户端回调注册的Watchers进行通知处理
ClientCnxn构造方法
&
- 【Java命令一】jmap
bit1129
Java命令
jmap命令的用法:
[hadoop@hadoop sbin]$ jmap
Usage:
jmap [option] <pid>
(to connect to running process)
jmap [option] <executable <core>
(to connect to a
- Apache 服务器安全防护及实战
ronin47
此文转自IBM.
Apache 服务简介
Web 服务器也称为 WWW 服务器或 HTTP 服务器 (HTTP Server),它是 Internet 上最常见也是使用最频繁的服务器之一,Web 服务器能够为用户提供网页浏览、论坛访问等等服务。
由于用户在通过 Web 浏览器访问信息资源的过程中,无须再关心一些技术性的细节,而且界面非常友好,因而 Web 在 Internet 上一推出就得到
- unity 3d实例化位置出现布置?
brotherlamp
unity教程unityunity资料unity视频unity自学
问:unity 3d实例化位置出现布置?
答:实例化的同时就可以指定被实例化的物体的位置,即 position
Instantiate (original : Object, position : Vector3, rotation : Quaternion) : Object
这样你不需要再用Transform.Position了,
如果你省略了第二个参数(
- 《重构,改善现有代码的设计》第八章 Duplicate Observed Data
bylijinnan
java重构
import java.awt.Color;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.Label;
import java.awt.TextField;
import java.awt.event.FocusAdapter;
import java.awt.event.FocusE
- struts2更改struts.xml配置目录
chiangfai
struts.xml
struts2默认是读取classes目录下的配置文件,要更改配置文件目录,比如放在WEB-INF下,路径应该写成../struts.xml(非/WEB-INF/struts.xml)
web.xml文件修改如下:
<filter>
<filter-name>struts2</filter-name>
<filter-class&g
- redis做缓存时的一点优化
chenchao051
redishadooppipeline
最近集群上有个job,其中需要短时间内频繁访问缓存,大概7亿多次。我这边的缓存是使用redis来做的,问题就来了。
首先,redis中存的是普通kv,没有考虑使用hash等解结构,那么以为着这个job需要访问7亿多次redis,导致效率低,且出现很多redi
- mysql导出数据不输出标题行
daizj
mysql数据导出去掉第一行去掉标题
当想使用数据库中的某些数据,想将其导入到文件中,而想去掉第一行的标题是可以加上-N参数
如通过下面命令导出数据:
mysql -uuserName -ppasswd -hhost -Pport -Ddatabase -e " select * from tableName" > exportResult.txt
结果为:
studentid
- phpexcel导出excel表简单入门示例
dcj3sjt126com
PHPExcelphpexcel
先下载PHPEXCEL类文件,放在class目录下面,然后新建一个index.php文件,内容如下
<?php
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
if (PHP_SAPI == 'cli')
die('
- 爱情格言
dcj3sjt126com
格言
1) I love you not because of who you are, but because of who I am when I am with you. 我爱你,不是因为你是一个怎样的人,而是因为我喜欢与你在一起时的感觉。 2) No man or woman is worth your tears, and the one who is, won‘t
- 转 Activity 详解——Activity文档翻译
e200702084
androidUIsqlite配置管理网络应用
activity 展现在用户面前的经常是全屏窗口,你也可以将 activity 作为浮动窗口来使用(使用设置了 windowIsFloating 的主题),或者嵌入到其他的 activity (使用 ActivityGroup )中。 当用户离开 activity 时你可以在 onPause() 进行相应的操作 。更重要的是,用户做的任何改变都应该在该点上提交 ( 经常提交到 ContentPro
- win7安装MongoDB服务
geeksun
mongodb
1. 下载MongoDB的windows版本:mongodb-win32-x86_64-2008plus-ssl-3.0.4.zip,Linux版本也在这里下载,下载地址: http://www.mongodb.org/downloads
2. 解压MongoDB在D:\server\mongodb, 在D:\server\mongodb下创建d
- Javascript魔法方法:__defineGetter__,__defineSetter__
hongtoushizi
js
转载自: http://www.blackglory.me/javascript-magic-method-definegetter-definesetter/
在javascript的类中,可以用defineGetter和defineSetter_控制成员变量的Get和Set行为
例如,在一个图书类中,我们自动为Book加上书名符号:
function Book(name){
- 错误的日期格式可能导致走nginx proxy cache时不能进行304响应
jinnianshilongnian
cache
昨天在整合某些系统的nginx配置时,出现了当使用nginx cache时无法返回304响应的情况,出问题的响应头: Content-Type:text/html; charset=gb2312 Date:Mon, 05 Jan 2015 01:58:05 GMT Expires:Mon , 05 Jan 15 02:03:00 GMT Last-Modified:Mon, 05
- 数据源架构模式之行数据入口
home198979
PHP架构行数据入口
注:看不懂的请勿踩,此文章非针对java,java爱好者可直接略过。
一、概念
行数据入口(Row Data Gateway):充当数据源中单条记录入口的对象,每行一个实例。
二、简单实现行数据入口
为了方便理解,还是先简单实现:
<?php
/**
* 行数据入口类
*/
class OrderGateway {
/*定义元数
- Linux各个目录的作用及内容
pda158
linux脚本
1)根目录“/” 根目录位于目录结构的最顶层,用斜线(/)表示,类似于
Windows
操作系统的“C:\“,包含Fedora操作系统中所有的目录和文件。 2)/bin /bin 目录又称为二进制目录,包含了那些供系统管理员和普通用户使用的重要
linux命令的二进制映像。该目录存放的内容包括各种可执行文件,还有某些可执行文件的符号连接。常用的命令有:cp、d
- ubuntu12.04上编译openjdk7
ol_beta
HotSpotjvmjdkOpenJDK
获取源码
从openjdk代码仓库获取(比较慢)
安装mercurial Mercurial是一个版本管理工具。 sudo apt-get install mercurial
将以下内容添加到$HOME/.hgrc文件中,如果没有则自己创建一个: [extensions] forest=/home/lichengwu/hgforest-crew/forest.py fe
- 将数据库字段转换成设计文档所需的字段
vipbooks
设计模式工作正则表达式
哈哈,出差这么久终于回来了,回家的感觉真好!
PowerDesigner的物理数据库一出来,设计文档中要改的字段就多得不计其数,如果要把PowerDesigner中的字段一个个Copy到设计文档中,那将会是一件非常痛苦的事情。