`
woainike
  • 浏览: 79867 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
最近访客 更多访客>>
社区版块
存档分类
最新评论

宏表达式

 
阅读更多

 

 

在方法头上通过

 

#define ELTYPE(typeName) (NSOrderedSame == [elementName caseInsensitiveCompare:@#typeName])

的写法,在方法里面的实用

 

- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName

                                        namespaceURI:(NSString *)namespaceURI

                                       qualifiedName:(NSString *)qName

                                          attributes:(NSDictionary *)attributeDict

{

    NSString *ident = [attributeDict objectForKey:@"id"];

 

    KMLStyle *style = [_placemark style] ? [_placemark style] : _style;

 

    // Style and sub-elements

    if (ELTYPE(Style)) {

        if (_placemark) {

            [_placemark beginStyleWithIdentifier:ident];

        } else if (ident != nil) {

            _style = [[KMLStyle alloc] initWithIdentifier:ident];

        }

    } else if (ELTYPE(PolyStyle)) {

        [style beginPolyStyle];

    } else if (ELTYPE(LineStyle)) {

        [style beginLineStyle];

    } else if (ELTYPE(color)) {

        [style beginColor];

    } else if (ELTYPE(width)) {

        [style beginWidth];

    } else if (ELTYPE(fill)) {

        [style beginFill];

    } else if (ELTYPE(outline)) {

        [style beginOutline];

    }

    // Placemark and sub-elements

    else if (ELTYPE(Placemark)) {

        _placemark = [[KMLPlacemark alloc] initWithIdentifier:ident];

    } else if (ELTYPE(Name)) {

        [_placemark beginName];

    } else if (ELTYPE(Description)) {

        [_placemark beginDescription];

    } else if (ELTYPE(styleUrl)) {

        [_placemark beginStyleUrl];

    } else if (ELTYPE(Polygon) || ELTYPE(Point) || ELTYPE(LineString)) {

        [_placemark beginGeometryOfType:elementName withIdentifier:ident];

    }

    // Geometry sub-elements

    else if (ELTYPE(coordinates)) {

        [_placemark.geometry beginCoordinates];

    } 

    // Polygon sub-elements

    else if (ELTYPE(outerBoundaryIs)) {

        [_placemark.polygon beginOuterBoundary];

    } else if (ELTYPE(innerBoundaryIs)) {

        [_placemark.polygon beginInnerBoundary];

    } else if (ELTYPE(LinearRing)) {

        [_placemark.polygon beginLinearRing];

    }

 

}

 

 

 

分享到:
评论

相关推荐

    POWERMILL宏

    POWERMILL宏

    powermill最常用宏程序合集

    本资源“powermill最常用宏程序合集”是针对Powermill用户的一个极其宝贵的资料库,它包含了大量用于提高工作效率和精度的宏程序,这些宏程序通常用于自动化和定制化Powermill的功能。 宏程序是Powermill中的一个...

    SAS (统计分析软件)课件:第14章 宏编程技术.ppt

    宏编程技术涉及宏变量、宏、宏参数、宏表达式、宏引用等多个概念。 1. **宏变量**: - **定义**:宏变量是存储文本值的容器,通过 `%LET` 语句创建。例如,`%let DSN=ResDat.class;` 定义了一个名为 `DSN` 的宏...

    软件SAS宏编程

    宏函数允许在宏语言中执行类似传统编程语言中的函数操作,而宏表达式则用于在宏语言中计算值。 从内容上来看,本文件涵盖了SAS宏编程的基础知识,包括宏处理器、宏变量、宏定义、参数传递、条件代码生成、高级技术...

    007SAS 宏语言.pdf

    2. 处理算术与逻辑表达式的宏函数:例如, `%EVAL()`用于计算宏表达式。 3. 处理文本的宏函数:例如, `%STR()`用于创建字符串常量,不受宏解析影响。 宏函数的使用扩展了宏语言的功能,使其能处理更复杂的任务,如...

    SAS宏_经典教程_2007年第二版_

    - 宏表达式允许用户构建复杂的逻辑结构来控制宏的行为。 - **宏调用与执行流程**: - 宏调用通常通过 `%macro` 和 `%mend` 命令定义,通过 `%include` 或 `%call` 调用。 - 执行流程涉及到宏展开、参数传递和结果...

    C语言宏:定义、使用及其最佳实践

    例如,在宏表达式中使用副作用强烈的操作(如自增或自减)可能导致问题。下面的示例演示了这种情况: ```c #define ADD(x, y) (x + y) int main() { int a = 5, b = 3; printf("Result: %d\n", ADD(a++, b++)); ...

    Cognos Advanced Prompting and Prompt

    3. **使用更高效的宏表达式**:宏表达式在Cognos 8.2 BI中被广泛用于动态生成复杂的提示逻辑。选择合适且高效的宏表达式可以有效减少处理时间。 ### 提示协调 #### 什么是提示协调? 提示协调是指Cognos 8.2 BI在...

    计算机习题.pdf

    - 在宏表达式中,可以使用 `Reports!test!Name` 访问报表控件值。 - VBA的自动运行宏命名为 `Autoexec`。 - 条件宏的条件项是逻辑表达式,可以使用条件表达式决定操作是否执行。 - 宏或宏组运行后才会产生宏...

    《C语言学习辅导》预处理1

    要注意的是,宏展开时不考虑类型,因此可能在某些情况下导致意料之外的行为,比如在宏表达式中涉及到浮点数和整数的混合运算。 条件编译是预处理的另一重要特性,它允许我们根据特定的条件包含或排除某些代码段。这...

    UE使用技巧(宏、正则表达式)

    处理字符时,少不了UE(UltraEidt)的帮忙,只有在处理中才发现其功能之强悍。在此,共享个人积累,抛砖引玉,希望对大家有用。

    2021-2022计算机二级等级考试试题及答案No.3123.docx

    3. VBA宏表达式:引用窗体控件的值,正确的宏表达式是Forms!窗体名!控件名。 4. 默认值设置:在Visual FoxPro中,只有数据库表可以设置字段的默认值。 5. 数据库系统结构:常见的运行与应用结构包括C/S(客户端/...

    2021-2022计算机二级等级考试试题及答案No.5509.docx

    包括数据库管理、编程语言、网络协议、操作系统、软件调试、数据模型、计算机病毒特性、计算机硬件分类、窗口事件、内存类型、域名系统、程序设计语言、字符判断、电子表格、数据访问、条件设置、幻灯片操作以及宏...

    IBM Cognos BI 最佳实践_报表设计高级提示和提示性能调优.docx

    在数据项表达式中使用的参数是必需的,而宏表达式中定义的参数可以是可选的或必需的,可以是单一值或多值。 IBM Cognos 8.2 中的提示调节如何影响性能?在执行提示调节时,IBM Cognos 8 需要检查查询,判断有哪些...

    C语言的条件编译[参考].pdf

    `defined()` 函数可以作为宏表达式的一部分,用于检查宏是否存在。例如,`#if defined(MACRO)` 返回真(非零)如果宏 `MACRO` 被定义,否则返回假(零)。这使得编写更复杂的条件编译指令成为可能,例如 `#if ...

    2021-2022计算机二级等级考试试题及答案No.5298.docx

    3. Access宏表达式:在Access中,引用窗体控件的值,应该使用Forms!窗体名!控件名这样的宏表达式,所以B选项是正确的。 4. 二叉树遍历:二叉树的遍历有三种主要方式:前序遍历、中序遍历和后序遍历。根据后序遍历...

    2021-2022计算机二级等级考试试题及答案No.19457.docx

    2. 宏表达式引用:在Access中,Forms!控件名!窗体名是正确的宏表达式结构,用于引用窗体控件的值。 3. TCP/IP协议:Internet的基础是TCP/IP协议,它定义了网络通信的标准。 4. 软件维护:软件维护是软件生命周期的...

Global site tag (gtag.js) - Google Analytics