// 自定义初始化方法
- (instancetype)init{
self.dic = [NSMutableDictionary dictionary];
return self;
}
// 获得 首字母大写
- (NSString *)uppercaseString:(Contact *)contact{
NSString *str = [contact.name capitalizedString];
NSString *strNew = [str substringToIndex:1];
return strNew;
}
// 添加联系人
- (void)addContact:(Contact *)contact{
// 大写首字母获得
NSString *str = [self uppercaseString:contact];
NSMutableArray *array = [self.dic objectForKey:str];
if (!array) {
// 初始化数组空间
array = [NSMutableArray array];
// 创建键值对
[self.dic setObject:array forKey:str];
}
[array addObject:contact];
}
// 获取某个分组名称下所有联系⼈,并且按照姓名升序排列。
- (void)sortInGroupByName:(NSString *)str{
NSMutableArray *array = [self.dic objectForKey:str];
if (array != nil) {
[array sortUsingComparator:^NSComparisonResult(id obj1, id obj2) {
Contact *c1 = (Contact *)obj1;
Contact *c2 = (Contact *)obj2;
return [c1.name compare:c2.name];
}];
}
NSLog(@"%@",array);
}
// 从通讯录中根据电话号码搜索联系⼈
- (void)searchByNum:(NSString *)phoneNum{
for (NSString *keys in self.dic) {
NSMutableArray *array = [self.dic objectForKey:keys];
for (Contact *contact in array) {
if ([contact.phoneNum isEqualToString:phoneNum]) {
NSLog(@"%@",contact);
}
}
}
}
// 获取所有⼥性的联系⼈,并且按照年龄的降序排列
- (void)sortFemaleByAge{
NSMutableArray *array = [NSMutableArray array];
for (NSString *keys in self.dic) {
NSMutableArray *tempArray = [self.dic objectForKey:keys];
for (Contact *contact in tempArray) {
if ([contact.sex isEqualToString:@"女"]) {
[array addObject:contact];
}
}
}
if (array.count > 0) {
[array sortUsingComparator:^NSComparisonResult(id obj1, id obj2) {
Contact *c1 = (Contact *)obj1;
Contact *c2 = (Contact *)obj2;
if (c1.age > c2.age) {
return NSOrderedDescending;
}else if (c1.age == c2.age){
return NSOrderedSame;
}else{
return NSOrderedAscending;
}
}];
}
}
// 根据姓名删除某个联系⼈
- (void)deleteByName:(NSString *)name{
Contact *contact = nil;
NSString *str = [[name capitalizedString] substringToIndex:1];
NSMutableArray *arr = self.dic[str];
for (Contact *c in arr) {
if (c.name == name) {
contact = c;
}
}
if (arr.count > 1) {
[arr removeObject:contact];
}else{
[self.dic removeObjectForKey:str];
}
NSLog(@"%@",self.dic);
}
// 删除某个分组的全部联系⼈
- (void)deleteGroup:(NSString *)group{
[self.dic removeObjectForKey:group];
}
- (NSString *)description{
return [NSString stringWithFormat:@"%@",self.dic];
}
相关推荐
国标Gb28181里Contact和Route的使用
国标Gb28181是基于Sip协议的,因此对Contact和Route的使用,也可以说是Sip里Contact和Route的使用。Contact和Route则是sip协议里的头字段。 现在,在使用国标Gb28181来做项目时,经常会遇到这种情况,国标的下级是在内网里,上级在公网上。如果不做处理,下级到上级会经过nat协议的转换从而导致上级向下级发送请求时(比如获取目录请求)不能到达
Java 字符串拼接 五种方法的性能比较分析 从执行100次到90万次
> 字符串拼接一般使用“+”,但是“+”不能满足大批量数据的处理,Java中有以下五种方法处理字符串拼接,各有优缺点,程序开发应选择合适的方法实现。 1. 加号 “+” 2. String contact() 方法 3. StringUtils.join() 方法 4. StringBuffer append() 方法 5. StringBuilder append(
防爆机器人EMC失效实战排查:从DCS误报定位传导与耦合干扰
电磁兼容性(EMC)是工业控制系统稳定运行的基础技术能力,涉及设备抗扰度与发射限值两大维度。其核心原理在于抑制传导、辐射、容性及感性四类电磁耦合路径,保障微弱模拟信号(如4–20mA、热电偶μV级)在复杂工况下的完整性。在石化、煤化工等强干扰场景中,EMC缺陷常导致DCS数据跳变、SIS安全联锁误触发等严重后果,技术价值体现在避免非计划停车与工艺安全风险。典型应用场景包括防爆机器人接入DCS/SIS系统、变频器邻近布线、长距离信号电缆敷设等。本文聚焦真实产线中由开关电源噪声、地电位差、屏蔽层失效等引发的EM
Java 代码优化 字符串高效率拼接:+,contact,StringBuffer,StringBuilder 的性能比较,使用JProfiler测试
Java里面字符串拼接,估计是使用的最多的,经常使用的就是几种方式,谁的效率高呢: 1,直接使用“+”来拼接字符串 2,使用字符串自带的contact()方法 3,使用StringBuffer的append()和toString()方法 4,使用StringBuilder的append()和toString()方法 暂时就这么几个,若是再有的话,再继续比较。 下面看看,他们一起运行的时...
java中concat()方法的使用说明
主要介绍了java中concat()方法的使用说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
centos7安装Ambari 2.7.5 + HDP3.1.5
准备 1.安装包准备: Ambari2.7.5、HDP31.5、libtirpc-devel: centos7操作系统: 链接:https://pan.baidu.com/s/1vzvio5rAMsbYF0-0vBs5dw 提取码:xij9
JAVA——类间双向关联关系的实现-Contact与Phone类(电话簿管理系统)
【问题描述】编程实现如图所示的类间关联关系(双向关联)【输入形式】 输入分4行, 第1行:联系人ID 联系人姓名 第2行:第一个联系电话号码 联系电话类型 第3行:第二个联系电话号码 联系电话类型 第4行:第三个联系电话号码 联系电话类型 【输出形式】 见样例输出 【样例输入】 123 xiaoyu 87542222 office 87558755 home 1397890678 mobile 【样例输出】 ContactName:xiaoyu PhoneNumber:875422
WebRTC Qos优化杂记
本文是笔者对WebRTC Qos性能研究、优化的一些思考,希望对有兴趣的读者有一些启发。
java中contact方法_Java ContactListener.endContact方法代码示例
import org.jbox2d.callbacks.ContactListener; //导入方法依赖的package包/类public void update(ContactListener listener) {oldManifold.set(m_manifold);// Re-enable this contact.m_flags |= ENABLED_FLAG;boolean touc...
医学影像弹性形变处理
这段代码的主要流程是:读取 DICOM 医学影像,尝试使用 MONAI 进行弹性形变(根据版本适配),如果失败则使用 OpenCV 实现,最后可视化并保存处理结果。这样可以在不同环境下灵活处理医学影像的弹性形变需求。后面会写一篇解释弹性变形方法的短文。
用Django框架+爬虫技术实现自动获取可画(Canva)团队会员资格的方法
可画(canva)是一个非常流行的在线平面设计平台,因为它无需专业训练和技能就可以利用其丰富的资源设计出美观、酷炫的作品,因而它受到了极其广泛的设计专业和非专业人群的喜爱本文介绍了一种方法,它采用Django网络框架与爬虫技术相结合,实时监控定时更新可画团队版免费邀请链接的网站页面,一旦链接有更新动作,第一时间获取相关信息,并直接加载这个有效的邀请链接,自动进入可画网站获得团队版使用资格。
Java 常用字符串拼接 “+”、contact、append
进行字符串拼接时,经常会用到"+", 偶尔也用到string.concat去做,但官方推荐使用StringBuilder.append()去做,那这三种方式到底有什么区别呢? 我们先看string.concat源码: public String concat(String str) { int otherLen = str.length(); if (otherL...
复现HumanMAC(HumanMAC: Masked Motion Completion for Human Motion Prediction)
Human3.6M和HumanEva-I都放到data目录下(记得将data_multi_modal-20250320T022408Z-001.zip和humaneva_multi_modal-20250320T022412Z-001.zip解压缩并且分别重命名为data_multi_modal和humaneva_multi_modal)。生成的gif存放在inference目录下zero_shot_<INDEX>下的out目录下。新建一个data目录,将
CONTACT 在 Ubuntu 系统中的安装与使用
CONTACT 是研究三维摩擦接触问题的高级仿真程序,如轮轨之间、滚动轴承的接触问题。CONTACT 提供了完整且详细的解决方案,可集成到多体仿真软件中。其计算质量可与有限元分析相近,但计算时间仅为后者的千分之一。CONTACT 采用半解析方法和高效的数值算法,使得复杂的滚动接触问题能够在工程实践中得到快速准确的解决,为车辆动力学、轨道磨损预测等领域提供了强大工具。该程序实现了荷兰代尔夫特理工大学的 E.A.H. Vollebregt 博士和 J.J. Kalker 教授开发的滚动接触理论。
Eplan设计师必会—伺服安全回路的设计方法
本文介绍了在EPLAN中设计伺服STO安全回路的方法。首先需查阅伺服驱动器说明书确定STO接线端子,重点关注双通道配置。设计步骤包括:使用黑盒子功能绘制驱动器外形,正确标注STO接线点,并连接安全继电器或PLC的安全输出。关键注意事项有:必须采用双通道独立布线,确保同步动作,遵循故障安全原则,使用常闭触点串联回路。文中以西门子V90和汇川伺服为例说明具体接线要求,并附有项目实例参考。
科研牛马千万不要错过!手把手教你用AI精准匹配真实参考文献,仅需一个专业应用+两个提示词指令
当然也可以借助生成式AI,如GPT-5.2、Gemini 3 Pro粘贴段落,输入设计好的提示词,让模型根据段落内容匹配参考文献,并正确引用到段落合适位置,再按规范格式输出参考文献列表。阅读我提供的【正文文本】,为其中的关键论点寻找真实的、权威的参考文献(优先来源于Nature, Science, IEEE, ACM, PubMed等),并插入引用。若在段落中已经引用好了参考文献,也有参考文献列表,担心引用位置不当或论点、论述逻辑与文献不够契合,则可以用以下结构化提示词,让AI辅助审查。
ContactsContract.Data RAW_CONTACT_ID 和CONTACT_ID
ContactsContract.Data RAW_CONTACT_ID 和CONTACT_ID
node运行项目-Network: unavailable-没有ip地址
vscode运行vue项目后发现Network: unavailable 是什么情况呢?可能有一下三种情况:1.多个网卡原因:打开网络共享中心,把多余的网络禁用掉,只留一个2.在中配置host及public3.系统环境变量问题。
add contact层对比_int _eXosip_dialog_add_contact函数添加contact字段 | 学步园
这个函数没有具体分析:int_eXosip_dialog_add_contact (osip_message_t * request, osip_message_t * answer){osip_via_t *via;osip_from_t *a_from;char *contact = NULL;char locip[65];char firewall_ip[65];char firewall_...
NTscan扫描工具
ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。
android 蓝牙通讯demo
android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。
Android Contact分析(一):Data, RawContact, Contact之间的关系
一、前言: 最近任务暂时做完了,有一,两天空闲时间,因此,就想把Android Contact这块梳理下,也方便以后自己。 Android Contact的所有数据库表,都存在contacts2.db(路径: /data/data/com.android.providers.contacts/databases/contacts2.db)中,之所以叫con...
霍尼韦尔SoftMaster使用说明
霍尼韦尔SoftMaster使用说明
Android Contact provider基础
Contact providerContact provider是一个强大而又灵活的 Android 组件,用于管理设备上有关联系人数据的中央存储库。 Contact provider是您在设备的联系人应用中看到的数据源,您也可以在自己的应用中访问其数据,并可在设备与在线服务之间传送数据。 提供程序储存有多种数据源,由于它会试图为每个联系人管理尽可能多的数据,因此造成其组织结构非常复杂。 为此,该提
visio安装包
Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。
java中contact拼接_如何用Java代码在SAP Marketing Cloud里创建contact数据
我们可以使用SAP Marketing Cloud提供的Contact create OData API在第三方应用里创建Contact主数据.API地址:/sap/opu/odata/sap/CUAN_CONTACT_SRV/InteractionContacts示例代码只有100多行:import java.io.IOException;import java.io.UnsupportedEn...
contact us的PHP文件,opencart提交contact us页面的时候邮件报错的解决方法
人无完人、金无完金,虽然opencart无忧主机小编觉得非常优秀了,但是总是有一些小bug出现,但是今天无忧主机小编讲解的这个不是什么小bug,而是无忧主机的php空间直接是禁止了mail函数了的,所以在提交联系我们contact us页面的时候,邮件报错的原因了。下面无忧主机具体来说一说具体的报错的原因,以及解决方法:您的邮件设置了SMTP,所以呢SMTP默认的是从您设置的SMTP中的email...
Marketing Cloud的contact merge机制
Marketing Cloud的contact支持多种多样的数据源,如下图所示: SAP Hybris Commerce SAP ERP SAP Cloud for Customer SAP Gigya external social media 在系统的Origin data标签页里能看到一个merge后的contact的所有数据源: 看一些例子。初次从Hybris commerc...
Contact form 7插件使用介绍和常见问题解答
Contact form 7 是一款非常流行的免费表单插件,功能很强大,操作也不复杂,比曾经用过的emailmeform要更好,下面介绍使用方法。 原文:Contact form 7插件使用介绍和常见问题解答 1. 安装并激活CF7 搜索 contact form 7 即可找到,作者是日本人,所以图标是富士山,选择install并activate it 2.新建并设
java contact_使用Java代码在SAP Marketing Cloud上创建Contact数据
package partner1;import java.io.IOException;import java.io.UnsupportedEncodingException;import java.net.URI;import org.apache.http.HttpEntity;import org.apache.http.HttpResponse;import org.apache.http...
5512



被折叠的 条评论
为什么被折叠?



