OC_省市区字典

    NSString *path = @"/Users/lanou3g/Desktop/practice1/practice1/area.txt";
    NSString *str = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
    NSArray *arr = [str componentsSeparatedByString:@"\n"];
    NSMutableArray *proArr = [NSMutableArray array];
    for (NSString *str in arr) {
        if (![str hasPrefix:@" "]) {
            NSMutableDictionary *proDic = [NSMutableDictionary dictionary];
            NSMutableArray *cityArr = [NSMutableArray array];
            [proDic setObject:str forKey:@"proName"];
            [proDic setObject:cityArr forKey:@"cityArr"];
            [proArr addObject:proDic];
        } else if ([str hasPrefix:@" "] && ![str hasPrefix:@"    "])  {
            NSMutableDictionary *cityDic = [NSMutableDictionary dictionary];
            NSMutableArray *areaArr = [NSMutableArray array];
            NSMutableDictionary *proDic = [proArr lastObject];
            NSMutableArray *cityArr = proDic[@"cityArr"];
            [cityDic setObject:str forKey:@"cityName"];
            [cityDic setObject:areaArr forKey:@"areaArr"];
            [cityArr addObject:cityDic];
        } else {
            NSMutableDictionary *proDic = [proArr lastObject];
            NSMutableArray *cityArr = proDic[@"cityArr"];
            NSMutableDictionary *cityDic = [cityArr lastObject];
            NSMutableArray *areaArr= cityDic[@"areaArr"];
            [areaArr addObject:str];
        }
    }
    for (NSMutableDictionary *dic in proArr) {
        NSLog(@"%@", dic[@"proName"]);
        NSMutableArray *cityArr = dic[@"cityArr"];
        for (NSMutableDictionary *cityDic in cityArr) {
            NSLog(@"%@", cityDic[@"cityName"]);
            NSMutableArray *areaArr = cityDic[@"areaArr"];
            for (NSString *areaName in areaArr) {
                NSLog(@"%@", areaName);
            }
        }
    }
### oc_agent 使用说明 #### MQTT Agent 的配置与初始化 应用程序通过特定函数来配置MQTT代理[^1]。此过程涉及传递一个指向 `oc_mqtt_config_t` 类型参数的指针给配置函数 `oc_mqtt_config()`,该函数用于设置MQTT客户端的行为和属性[^2]。 当调用 `oc_mqtt_config()` 函数时,会执行一系列验证操作以确保传入的数据有效。这包括但不限于确认 lwM2M 实现的方法指针不是空值,并且提供的配置信息也存在。一旦这些条件满足,程序将继续深入到 `oc_config_param_t` 结构体内,进一步处理有关连接模式和服务端详情的信息[^3]。 ```c // 定义配置结构体实例 oc_mqtt_config_t config; // 设置必要的配置项... config.server_uri = "tcp://broker.hivemq.com:1883"; config.client_id = "test_client"; // 调用配置接口 int result = oc_mqtt_config(&config); if (result != 0) { // 处理错误情况 } ``` 上述代码展示了如何创建并填充 `oc_mqtt_config_t` 结构体变量 `config` 来指定服务器 URI 和客户端 ID 等必要字段。随后,这个已填好的结构被作为参数传递给了 `oc_mqtt_config()` 函数来进行实际的配置工作。最后检查返回的结果码以判断配置是否成功;非零值表示发生了某种形式的失败。 #### 错误处理机制 对于任何可能发生的异常状况,在尝试建立连接之前都会先设定默认的错误状态为 `en_oc_lwm2m_err_system`。这意味着如果后续过程中遇到未预见的问题,默认情况下系统将会报告这是一个来自底层系统的通用错误。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值