首页 文章 精选 留言 我的

精选列表

搜索[c ],共10000篇文章
优秀的个人博客,低调大师

(转载)iPhone开发视频教程 Objective-C部分 (51课时)

感谢好人的无私贡献!来源: http://www.cnblogs.com/aimeng/p/3370012.html 第一、二章OC基础语法 iPhone开发教程 第一章 OC基础语法iPhone开发概述-必看(1.1)http://www.apkbus.com/android-102215-1-1.htmliPhone开发教程 第二章iPhone开发之开发工具安装及介绍(2.1) http://www.apkbus.com/android-102218-1-1.htmliPhone开发教程 第二章 iPhone开发之OC变量和基本数据类型(2.2) http://www.apkbus.com/android-104875-1-1.htmliPhone开发教程 第二章 iPhone开发之OC变量和基本数据类型(2.3) http://www.apkbus.com/android-102608-1-1.htmliPhone开发教程 第二章 iPhone开发之基本数据类型转换(2.4) http://www.apkbus.com/android-102610-1-1.htmliPhone开发教程 第二章iPhone开发之OC运算符和表达式(2.5) http://www.apkbus.com/android-102612-1-1.htmliPhone开发教程 第二章 iPhone开发之if条件和for循环语句(2.6) http://www.apkbus.com/android-102613-1-1.htmliPhone开发教程 第二章 iPhone开发之while、break和continue(2.7) http://www.apkbus.com/android-102615-1-1.htmliPhone开发教程 第二章 iPhone开发之swtch语句(2.8) http://www.apkbus.com/android-102619-1-1.htmliPhone开发教程 第二章 iPhone开发之作业讲解(2.9) http://www.apkbus.com/android-102623-1-1.htmliPhone开发教程 第二章 iPhone开发之代码规范讲解(2.10) http://www.apkbus.com/android-102624-1-1.htmliPhone开发教程 第二章 iPhone开发之OC基础语法复习(2.11) http://www.apkbus.com/android-102625-1-1.html 第一章、二章OC基础语法 源代码下载地址:http://www.apkbus.com/android-103044-1-1.html 课件:http://www.apkbus.com/android-104681-1-1.html 第三章: OC面向对象编程 iPhone开发教程 第三章 面向对象的基本概念—类和对象(3.1) http://www.apkbus.com/android-102626-1-1.htmliPhone开发教程 第三章 类的声明和对象的创建—内存分析1(3.2) http://www.apkbus.com/android-102627-1-1.htmliPhone开发教程 第三章 类的声明和创建内存分析2 (3.3) http://www.apkbus.com/android-102635-1-1.htmliPhone开发教程 第三章 @property属性和点语法 (3.4) http://www.apkbus.com/android-102637-1-1.htmliPhone开发教程 第三章 类的继承与重载 (3.5) http://www.apkbus.com/android-102638-1-1.htmliPhone开发教程 第三章 OC多态和动态绑定 (3.6) http://www.apkbus.com/android-102639-1-1.htmliPhone开发教程 第三章 OC中动态绑定和异常处理 (3.7) http://www.apkbus.com/android-102640-1-1.html 第三章OC面向对象编程 源代码下载地址:http://www.apkbus.com/android-103050-1-1.html 课件:http://www.apkbus.com/android-104682-1-1.html 第四章:数组、字典和集合 iPhone开发教程 第四章 NSNumber数字的使用 (4.1) http://www.apkbus.com/android-102641-1-1.htmliPhone开发教程 第四章 NSString字符串的使用 (4.2) http://www.apkbus.com/android-102642-1-1.htmliPhone开发教程 第四章 NSArray数组的使用 (4.3) http://www.apkbus.com/android-102644-1-1.htmliPhone开发教程 第四章 NSDictionary字典的使用 (4.4) http://www.apkbus.com/android-102645-1-1.htmliPhone开发教程 第四章 NSSet集合的使用 (4.5) http://www.apkbus.com/android-102648-1-1.html 第四章 数组、字典和集合 源代码下载地址:http://www.apkbus.com/android-103052-1-1.html 课件:http://www.apkbus.com/android-104683-1-1.html 第五章: 类的扩展——类目和协议 iPhone开发教程 第五章 类目的基本概念和用法(5.1) http://www.apkbus.com/android-102650-1-1.htmliPhone开发教程 第五章 延展的基本概念和用法(5.2) http://www.apkbus.com/android-102652-1-1.htmliPhone开发教程 第五章 协议和代理设计模式(5.3) http://www.apkbus.com/android-102653-1-1.htmliPhone开发教程 第五章 OC中代理设计模式(5.4) http://www.apkbus.com/android-102655-1-1.html 第五章 类的扩展——类目和协议 源代码下载地址:http://www.apkbus.com/android-103064-1-1.html 课件:http://www.apkbus.com/android-104684-1-1.html 第六章内存管理 iPhone开发教程 第六章 引用技术的基本概念和用法(6.1) http://www.apkbus.com/android-102656-1-1.htmliPhone开发教程 第六章 对象所有权的基本概念和用法 (6.2) http://www.apkbus.com/android-102693-1-1.htmliPhone开发教程 第六章 详解dealloc方法 (6.3) http://www.apkbus.com/android-102700-1-1.htmliPhone开发教程 第六章 点语法内存管理 (6.4) http://www.apkbus.com/android-102702-1-1.htmliPhone开发教程 第六章 自动释放池和ARC(6.5) http://www.apkbus.com/android-102704-1-1.htmliPhone开发教程 第六章 循环引用和总结 (6.6) http://www.apkbus.com/android-102708-1-1.html 第六章内存管理 源代码下载地址:http://www.apkbus.com/android-103065-1-1.html 课件 :http://www.apkbus.com/android-104685-1-1.html 第七章文件管理 iPhone开发教程 第七章 NSFileHandle的概念和用法(7.1) http://www.apkbus.com/android-102712-1-1.htmliPhone开发教程 第七章 NSFileHandle作业1讲解(7.2) http://www.apkbus.com/android-102716-1-1.htmliPhone开发教程 第七章 NSFileHandle作业2讲解(7.3) http://www.apkbus.com/android-102723-1-1.html 第七章文件管理 源代码下载地址:http://www.apkbus.com/android-103066-1-1.html 课件:http://www.apkbus.com/android-104687-1-1.html 第八章复制对象、归档与单例 iPhone开发教程 第八章 复制对象的概念和用法(8.1) http://www.apkbus.com/android-102725-1-1.htmliPhone开发教程 第八章 复制对象课堂练习讲解(8.2) http://www.apkbus.com/android-102726-1-1.htmliPhone开发教程 第八章 归档的概念和用法(8.3) http://www.apkbus.com/android-102727-1-1.htmliPhone开发教程 第八章 自定义对象的归档(8.4) http://www.apkbus.com/android-102733-1-1.htmliPhone开发教程 第八章 OC中单例的概念和使用(8.5) http://www.apkbus.com/android-102738-1-1.htmliPhone开发教程 第八章 NSUserDefault的使用(8.6) http://www.apkbus.com/android-102741-1-1.htmliPhone开发教程 第八章 归档作业1讲解(8.7) http://www.apkbus.com/android-102744-1-1.htmliPhone开发教程 第八章 归档作业2讲解(8.8) http://www.apkbus.com/android-102746-1-1.html 第八章复制对象、归档与单例 源代码下载地址:http://www.apkbus.com/android-103068-1-1.html 课件:http://www.apkbus.com/android-104688-1-1.html 第九章KVC、KVO、谓词与通知 iPhone开发教程 第九章 kvc的概念和使用(9.1) http://www.apkbus.com/android-102750-1-1.htmliPhone开发教程 第九章 kvc课堂练习讲解(9.2) http://www.apkbus.com/android-102753-1-1.htmliPhone开发教程 第九章 kvo的概念和使用(9.3) http://www.apkbus.com/android-102754-1-1.htmliPhone开发教程 第九章 kvo课堂练习讲解(9.4) http://www.apkbus.com/android-102756-1-1.htmliPhone开发教程 第九章 谓词的使用(9.5) http://www.apkbus.com/android-102764-1-1.htmliPhone开发教程 第九章 通知(Notification)的使用(9.6) http://www.apkbus.com/android-102768-1-1.html 第九章KVC、KVO、谓词与通知 源代码下载地址:http://www.apkbus.com/android-103069-1-1.html 课件、:http://www.apkbus.com/android-104689-1-1.html 本文转自夏雪冬日博客园博客,原文链接:http://www.cnblogs.com/heyonggang/p/3373380.html,如需转载请自行联系原作者

优秀的个人博客,低调大师

Apache Spark技术实战(二)KafkaWordCount &PackratParsers实例 &Spark Cassandra C...

<一>KafkaWordCount 概要 Spark应用开发实践性非常强,很多时候可能都会将时间花费在环境的搭建和运行上,如果有一个比较好的指导将会大大的缩短应用开发流程。Spark Streaming中涉及到和许多第三方程序的整合,源码中的例子如何真正跑起来,文档不是很多也不详细。 本篇主要讲述如何运行KafkaWordCount,这个需要涉及Kafka集群的搭建,还是说的越仔细越好。 搭建Kafka集群 步骤1:下载kafka 0.8.1及解压 wget https://www.apache.org/dyn/closer.cgi?path=/kafka/0.8.1.1/kafka_2.10-0.8.1.1.tgz tar zvxf kafka_2.10-0.8.1.1.tgz cd kafka_2.10-0.8.1.1 步骤2:启动zookeeper bin/zookeeper-server-start.sh config/zookeeper.properties 步骤3:修改配置文件config/server.properties,添加如下内容 host.name=localhost # Hostname the broker will advertise to producers and consumers. If not set, it uses the # value for "host.name" if configured. Otherwise, it will use the value returned from # java.net.InetAddress.getCanonicalHostName(). advertised.host.name=localhost 步骤4:启动Kafka server bin/kafka-server-start.sh config/server.properties 步骤5:创建topic bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test 检验topic创建是否成功 bin/kafka-topics.sh --list --zookeeper localhost:2181 如果正常返回test 步骤6:打开producer,发送消息 bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test ##启动成功后,输入以下内容测试 This is a message This is another message 步骤7:打开consumer,接收消息 bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic test --from-beginning ###启动成功后,如果一切正常将会显示producer端输入的内容 This is a message This is another message 运行KafkaWordCount KafkaWordCount源文件位置 :examples/src/main/scala/org/apache/spark/examples/streaming/KafkaWordCount.scala 尽管里面有使用说明,见下文,但如果不是事先对Kafka有一定的了解的话,决然不知道这些参数是什么意思,也不知道该如何填写。 /** * Consumes messages from one or more topics in Kafka and does wordcount. * Usage: KafkaWordCount * is a list of one or more zookeeper servers that make quorum * is the name of kafka consumer group * is a list of one or more kafka topics to consume from * is the number of threads the kafka consumer should use * * Example: * `$ bin/run-example \ * org.apache.spark.examples.streaming.KafkaWordCount zoo01,zoo02,zoo03 \ * my-consumer-group topic1,topic2 1` */ object KafkaWordCount { def main(args: Array[String]) { if (args.length < 4) { System.err.println("Usage: KafkaWordCount ") System.exit(1) } StreamingExamples.setStreamingLogLevels() val Array(zkQuorum, group, topics, numThreads) = args val sparkConf = new SparkConf().setAppName("KafkaWordCount") val ssc = new StreamingContext(sparkConf, Seconds(2)) ssc.checkpoint("checkpoint") val topicpMap = topics.split(",").map((_,numThreads.toInt)).toMap val lines = KafkaUtils.createStream(ssc, zkQuorum, group, topicpMap).map(_._2) val words = lines.flatMap(_.split(" ")) val wordCounts = words.map(x => (x, 1L)) .reduceByKeyAndWindow(_ + _, _ - _, Minutes(10), Seconds(2), 2) wordCounts.print() ssc.start() ssc.awaitTermination() } } 讲清楚了写这篇博客的主要原因之后,来看一看该如何运行KafkaWordCount 步骤1:停止运行刚才的kafka-console-producer和kafka-console-consumer 步骤2:运行KafkaWordCountProducer bin/run-example org.apache.spark.examples.streaming.KafkaWordCountProducer localhost:9092 test 3 5 解释一下参数的意思,localhost:9092表示producer的地址和端口, test表示topic,3表示每秒发多少条消息,5表示每条消息中有几个单词 步骤3:运行KafkaWordCount bin/run-example org.apache.spark.examples.streaming.KafkaWordCount localhost:2181 test-consumer-group test 1 解释一下参数, localhost:2181表示zookeeper的监听地址,test-consumer-group表示consumer-group的名称,必须和$KAFKA_HOME/config/consumer.properties中的group.id的配置内容一致,test表示topic,1表示线程数。 <二>PackratParsers实例 概要 通过一个简明的Demo程序来说明如何使用scala中的PackratParsers DemoApp import scala.util.parsing.combinator.PackratParsers import scala.util.parsing.combinator.syntactical._ object Dotter extends StandardTokenParsers with PackratParsers { //定义分割符 lexical.delimiters ++= List(".",";","+","-","*") //合法的输入模式,支持加,减,乘 lazy val pgm : PackratParser[Int] = expr | minus|multiply //定义模式加 lazy val expr :PackratParser[Int]= num~"+"~num ^^ {case n1~"+"~n2 => n1.toInt + n2.toInt} //定义模式减 lazy val minus :PackratParser[Int]= num~"-"~num ^^ {case n1~"-"~n2 => n1.toInt - n2.toInt} lazy val multiply :PackratParser[Int]= num~"*"~num ^^ {case n1~"*"~n2 => n1.toInt * n2.toInt} lazy val num = numericLit def parse(input: String) = phrase(pgm)(new PackratReader(new lexical.Scanner(input))) match { case Success(result, _) => println("Success!"); println(result);Some(result) case n @ _ => println(n);println("bla"); None } def main(args: Array[String]) { //定义list,::表示添加,Nil表示list结束 val prg = "12*2"::"24-4"::"3+5"::Nil prg.map(parse) } } parser中的表达式说明 A<~B 只保留左侧内容 A<~B 只保留A A~>B 只保留右侧内容 A~>B 只保留B ^^ 根据匹配结果生成语法短语 ^^^ 将语法短语转换成为另外的值,注意与^^的区别 ~ 连接符 A ̃B 表示模式匹配是B紧跟于A之后 | 或者 A|B 表示模式要么由A组成,要么由B组成 编译执行 将上述源码保存到文件dotter.scala。 编译 scalac dotter.scala 执行 scala -cp . Dotter <三>Spark Cassandra Connector的安装和使用 前提 假设当前已经安装好如下软件: jdk sbt git scala 安装cassandra 以archlinux为例,使用如下指令来安装Cassandra: yaourt -S cassandra 启动cassandra: cassandra -f 创建keyspace和table, 运行/usr/bin/cqlsh进入cql console,然后执行下述语句创建keyspace和table: CREATE KEYSPACE test WITH replication = {'class': 'SimpleStrategy', 'replication_factor': 1 }; CREATE TABLE test.kv(key text PRIMARY KEY, value int); 添加记录,继续使用cql console: INSERT INTO test.kv(key, value) VALUES ('key1', 1); INSERT INTO test.kv(key, value) VALUES ('key2', 2); 验证记录已经插入成功,执行如下cql: select * from test.kv; 下载编译spark-cassandra-connector 下载最新的spark-cassandra-connector源码: git clone https://github.com/datastax/spark-cassandra-connector.git 编译: sbt package 这中间要等待比较长的时间,请保持足够的耐心。 运行spark-shell 首先请确保cassandra已经正常安装和运行,如有问题请返回开始的章节安装Cassandra。 如何添加相应的library来支持spark-cassandra-connector,并没有一个明确的文档说明,折腾了一个下午,终于弄出了一个最简的配置。 bin/spark-shell --driver-class-path /root/working/spark-cassandra-connector/spark-cassandra-connector/target/scala-2.10/spark-cassandra-connector_2.10-1.1.0-SNAPSHOT.jar: /root/.ivy2/cache/org.apache.cassandra/cassandra-thrift/jars/cassandra-thrift-2.0.9.jar: /root/.ivy2/cache/org.apache.thrift/libthrift/jars/libthrift-0.9.1.jar: /root/.ivy2/cache/org.apache.cassandra/cassandra-clientutil/jars/cassandra-clientutil-2.0.9.jar: /root/.ivy2/cache/com.datastax.cassandra/cassandra-driver-core/jars/cassandra-driver-core-2.0.4.jar: /root/.ivy2/cache/io.netty/netty/bundles/netty-3.9.0.Final.jar: /root/.ivy2/cache/com.codahale.metrics/metrics-core/bundles/metrics-core-3.0.2.jar: /root/.ivy2/cache/org.slf4j/slf4j-api/jars/slf4j-api-1.7.7.jar: /root/.ivy2/cache/org.apache.commons/commons-lang3/jars/commons-lang3-3.3.2.jar: /root/.ivy2/cache/org.joda/joda-convert/jars/joda-convert-1.2.jar: /root/.ivy2/cache/joda-time/joda-time/jars/joda-time-2.3.jar: /root/.ivy2/cache/org.apache.cassandra/cassandra-all/jars/cassandra-all-2.0.9.jar: /root/.ivy2/cache/org.slf4j/slf4j-log4j12/jars/slf4j-log4j12-1.7.2.jar 上述指令假设spark-cassandra-connector的源码是下载在$HOME/working目录下,请根据自己的情况作适当修改。 我是如何猜测到需要指定这些包依赖的呢?说白了,也很简单,就是执行以下指令,然后再查看相就的java进程中的运行参数。 #运行spark-cassandra-connector测试集 sbt test sbt it:test 当上述指令还在运行的时候,使用ps来查看java运行的参数,这样就反过来知道所需要的包依赖了。 ps -ef|grep -i java 测试程序 由于spark-shell会默认创建sc,所以首先需要停止掉默认的sc,然后利用新的配置来创建可以连接到cassandra的sc,示例代码如下: sc.stop import com.datastax.spark.connector._ import org.apache.spark._ val conf = new SparkConf() conf.set("spark.cassandra.connection.host", "127.0.0.1") val sc = new SparkContext("local[2]", "Cassandra Connector Test", conf) val table = sc.cassandraTable("test", "kv") table.count 如果一切正常会显示出如下结果: res3: Long = 2 小结 进入实战阶段,挑战会越来越多,保持足够的信心和耐心很重要。 本篇内容和实战一中的kafka cluster组织在一起的话,就会形成一个从前台到后台存储的完整处理链条。

资源下载

更多资源
优质分享App

优质分享App

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册