<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>object-c on adolsai's echo</title><link>https://adolsai.com/tag/object-c/</link><description>Recent content in object-c on adolsai's echo</description><generator>Hugo</generator><language>zh-CN</language><lastBuildDate>Fri, 11 Mar 2016 19:25:43 +0800</lastBuildDate><atom:link href="https://adolsai.com/tag/object-c/index.xml" rel="self" type="application/rss+xml"/><item><title>Bundle Programming Guide</title><link>https://adolsai.com/archives/Bundle-Programming-Guide.html</link><pubDate>Mon, 21 Sep 2015 17:35:00 +0800</pubDate><guid>https://adolsai.com/archives/Bundle-Programming-Guide.html</guid><description>&lt;h1 id="introduction"&gt;Introduction&lt;/h1&gt;&#10;&lt;p&gt;Bundle是OS X和iOS中用来结构性封装代码和相关数据文件的技术。&lt;/p&gt;&#10;&lt;p&gt;在Xcode中新建project的时候会自动帮你创建好相应的项目结构:&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="https://adolsai.com/uploads/2015/09/619775116.webp" alt="bundle-sample1" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;</description></item><item><title>Resource Programming Guide</title><link>https://adolsai.com/archives/Resource-Programming-Guide.html</link><pubDate>Wed, 16 Sep 2015 21:50:00 +0800</pubDate><guid>https://adolsai.com/archives/Resource-Programming-Guide.html</guid><description>&lt;h1 id="about-resource"&gt;About Resource&lt;/h1&gt;&#10;&lt;p&gt;OS X和iOS直接支持的类型：&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Nib 存放用户界面对象&lt;/li&gt;&#10;&lt;li&gt;Strings 语言本地化文档&lt;/li&gt;&#10;&lt;li&gt;Image, Sound, Movies 预渲染文件&lt;/li&gt;&#10;&lt;li&gt;Property List 一般数据文件格式&lt;/li&gt;&#10;&lt;/ul&gt;</description></item><item><title>Using Regular Expression</title><link>https://adolsai.com/archives/using-regular-expression.html</link><pubDate>Thu, 27 Aug 2015 09:52:00 +0800</pubDate><guid>https://adolsai.com/archives/using-regular-expression.html</guid><description>&lt;blockquote&gt;&#10;&lt;p&gt;很好的入门教程:&lt;a href="http://www.jb51.net/tools/zhengze.html"&gt;《正则表达式30分钟入门教程》 by deerchao&lt;/a&gt;&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;blockquote&gt;&#10;&lt;p&gt;维基百科：&lt;a href="http://en.wikipedia.org/wiki/Regular_expression"&gt;http://en.wikipedia.org/wiki/Regular_expression&lt;/a&gt;&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;blockquote&gt;&#10;&lt;p&gt;正则表达式在线测试：&lt;a href="http://tool.chinaz.com/regex/"&gt;http://tool.chinaz.com/regex/&lt;/a&gt;&lt;/p&gt;&#10;&lt;/blockquote&gt;</description></item><item><title>File System Programming Guide(iOS)</title><link>https://adolsai.com/archives/File-System-Programming-Guide.html</link><pubDate>Thu, 27 Aug 2015 09:44:00 +0800</pubDate><guid>https://adolsai.com/archives/File-System-Programming-Guide.html</guid><description>&lt;h2 id="about"&gt;About&lt;/h2&gt;&#10;&lt;p&gt;sandbox机制让文件系统使用起来稍微有点不同，特别是访问别的app内容的时候需要取得对应的权限。同时sandbox机制基本明确了文件的存储位置。&lt;/p&gt;&#10;&lt;p&gt;该手册涉及内容：&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;sandbox文件系统规范&lt;/li&gt;&#10;&lt;li&gt;多线程/进程文件读写（&lt;code&gt;NSFileCoordinator&lt;/code&gt;、&lt;code&gt;NSFilePresenter&lt;/code&gt;）&lt;/li&gt;&#10;&lt;li&gt;文件类型及对应的读写方式&lt;/li&gt;&#10;&lt;li&gt;使用高级文件系统API&lt;/li&gt;&#10;&lt;li&gt;通用文件管理界面（如&lt;code&gt;Open and Save panel&lt;/code&gt;）&lt;/li&gt;&#10;&lt;li&gt;异步读写文件&lt;/li&gt;&#10;&lt;li&gt;模仿&lt;strong&gt;Finder&lt;/strong&gt;操作文件&lt;/li&gt;&#10;&lt;li&gt;优化文件相关操作&lt;/li&gt;&#10;&lt;li&gt;关于&lt;code&gt;File Mapping&lt;/code&gt;和&lt;code&gt;Directory Localized Name&lt;/code&gt;（OS X）在《&lt;em&gt;File System Advanced Programming Topics&lt;/em&gt;》&lt;/li&gt;&#10;&lt;/ul&gt;</description></item><item><title>[转]iOS开发中那些高效常用的宏</title><link>https://adolsai.com/archives/MacroDefinition.html</link><pubDate>Wed, 26 Aug 2015 16:16:00 +0800</pubDate><guid>https://adolsai.com/archives/MacroDefinition.html</guid><description>&lt;p&gt;iOS开发过程中使用一些常用的宏可以提高开发效率，提高代码的重用性；将这些宏放到一个头文件里然后再放到工程中的-Prefix.pch文件中(或者直接放到-Prefix.pch中)直接可以使用,灰常方便。&lt;/p&gt;</description></item><item><title>[转]iOS 的多线程同步</title><link>https://adolsai.com/archives/133.html</link><pubDate>Mon, 17 Aug 2015 12:10:00 +0800</pubDate><guid>https://adolsai.com/archives/133.html</guid><description>&lt;p&gt;转载：&lt;a href="http://blog.zorro.im/posts/iOS-muti-threading-synchronization.html"&gt;iOS 的多线程同步 by zqqf16&lt;/a&gt;&lt;/p&gt;&#10;&lt;blockquote&gt;&#10;&lt;p&gt;我的上一家公司有个引以为豪的技术：多核无锁，不仅避免了各种由锁带来的问题，还极大的提高了性能，所以产品性能能够在业界数一数二。 在这样的氛围影响下，我在开发的时候也很少用锁，能不用就不用。 后来去面试 iOS 开发的时候，面试官总是喜欢问有关于锁的问题，最近趁有时间就整理了一下，算是补充一下技能树吧。&lt;/p&gt;&#10;&lt;/blockquote&gt;</description></item><item><title>Threading Programming Guide 4 Synchronization</title><link>https://adolsai.com/archives/Threading-Programming-Guide-4-Synchronization.html</link><pubDate>Thu, 13 Aug 2015 17:17:00 +0800</pubDate><guid>https://adolsai.com/archives/Threading-Programming-Guide-4-Synchronization.html</guid><description>&lt;blockquote&gt;&#10;&lt;p&gt;部分内容来源于：&lt;a href="http://blog.zorro.im/posts/iOS-muti-threading-synchronization.html"&gt;ios多线程同步&lt;/a&gt;&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;h2 id="synchronization-tools"&gt;Synchronization Tools&lt;/h2&gt;&#10;&lt;h3 id="atomic-operations"&gt;Atomic Operations&lt;/h3&gt;&#10;&lt;p&gt;在多进程（线程）访问资源时，能够确保所有其他的进程（线程）都不在同一时间内访问相同的资源。原子操作（atomic operation）是不需要synchronized。所谓原子操作是指不会被线程调度机制打断的操作；这种操作一旦开始，就一直运行到结束，中间不会有任何 context switch （切换到另一个线程）。通常所说的原子操作包括对非long和double型的primitive进行赋值，以及返回这两者之外的primitive。&lt;/p&gt;&#10;&lt;p&gt;需要硬件实现，但是维基说可以用其他锁机制软件实现。&lt;/p&gt;</description></item><item><title>Transitioning to ARC Release Notes</title><link>https://adolsai.com/archives/Transitioning-to-ARC-Release-Notes.html</link><pubDate>Wed, 12 Aug 2015 21:40:00 +0800</pubDate><guid>https://adolsai.com/archives/Transitioning-to-ARC-Release-Notes.html</guid><description>&lt;p&gt;ARC (Automatic Reference Counting)是llvm compiler的特性之一，提供了objective-c对象的自动内存管理功能。它自动在适当的地方插入&lt;code&gt;retian&lt;/code&gt;、&lt;code&gt;release&lt;/code&gt;、&lt;code&gt;autorelease&lt;/code&gt;方法，配合autoreleasepool使用。启用了ARC之后，将不再能手动使用&lt;code&gt;retian&lt;/code&gt;、&lt;code&gt;release&lt;/code&gt;、&lt;code&gt;autorelease&lt;/code&gt;方法了。&lt;/p&gt;</description></item><item><title>Threading Programming Guide 3 Run Loops</title><link>https://adolsai.com/archives/Threading-Programming-Guide-3-Run-Loops.html</link><pubDate>Sat, 08 Aug 2015 17:42:00 +0800</pubDate><guid>https://adolsai.com/archives/Threading-Programming-Guide-3-Run-Loops.html</guid><description>&lt;p&gt;iOS线程编程手册-3-Run Loops&lt;/p&gt;&#10;&lt;p&gt;Run Loop是和线程关系密切的基础架构，它配合线程实现可循环事件处理机制。Run Loop的设计目的是让线程由事件驱动而运行，没有接收到事件就休眠。&lt;/p&gt;&#10;&lt;p&gt;只有主线程才是自带Run Loop光环的，设置主线程的Run Loop是应用程序启动的一部分。其他你自己创建的线程都需要自己写代码来实现Run Loop。Cocoa和Core Foundation都提供了run loop object让你可以方便的创建和管理run loop。&lt;/p&gt;</description></item><item><title>Threading Programming Guide 2 Thread Management</title><link>https://adolsai.com/archives/Threading-Programming-Guide-2-Thread-Management.html</link><pubDate>Fri, 07 Aug 2015 13:03:00 +0800</pubDate><guid>https://adolsai.com/archives/Threading-Programming-Guide-2-Thread-Management.html</guid><description>&lt;p&gt;iOS线程编程手册-2-线程管理&lt;/p&gt;&#10;&lt;p&gt;每一个进程（应用程序）都是由一个或者多个线程组成，每一个都有自己的执行路径（path of execution）。每一个应用程序的启动都是从主线程开始，然后再创建和启动其他线程。&lt;/p&gt;&#10;&lt;p&gt;当一个进程成功地创建/启动了更加多的线程，这些线程们在同一个进程里面独立的运行。他们有自己的execution stack并且由kernel指定计划在runtime中启动运行。一个线程可以和其他线程通信、可以实施I/O操作和其他任何你想干的事情。又因为他们是在同一个进程里面运行的，所以他们和主线程共享虚拟内存（virtual memory space）和访问权限。&lt;/p&gt;</description></item><item><title>Concurrency Programming Guide 5 Dispatch Sources</title><link>https://adolsai.com/archives/Concurrency-Programming-Guide-5-Dispatch-Sources.html</link><pubDate>Thu, 06 Aug 2015 10:58:00 +0800</pubDate><guid>https://adolsai.com/archives/Concurrency-Programming-Guide-5-Dispatch-Sources.html</guid><description/></item><item><title>Threading Programming Guide 1 About Threaded Programming</title><link>https://adolsai.com/archives/Threading-Programming-Guide-1-About-Threaded-Programming.html</link><pubDate>Wed, 05 Aug 2015 16:00:00 +0800</pubDate><guid>https://adolsai.com/archives/Threading-Programming-Guide-1-About-Threaded-Programming.html</guid><description>&lt;p&gt;iOS线程编程手册-1-关于线程编程&lt;/p&gt;&#10;&lt;p&gt;虽然有GCD和NSOperation可以高效地实现多线程，但是你也可以使用OS X和iOS提供的底层的线程API。&lt;/p&gt;&#10;&lt;h4 id="文档结构"&gt;文档结构&lt;/h4&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;About Threaded Programming&lt;/strong&gt; 介绍线程的概念和在app中的作用&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Thread Management&lt;/strong&gt; 介绍&lt;strong&gt;OS X&lt;/strong&gt;中的线程技术和使用方法&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Run Loops&lt;/strong&gt; 介绍如何使用响应事件的Run Loop&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Synchronization&lt;/strong&gt; 线程同步和操作方式&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Thread Safety Summary&lt;/strong&gt; 线程安全相关&lt;/li&gt;&#10;&lt;/ul&gt;</description></item><item><title>Advanced Memory Management Programming Guide</title><link>https://adolsai.com/archives/Advanced-Memory-Management-Programming-Guide.html</link><pubDate>Mon, 03 Aug 2015 16:18:00 +0800</pubDate><guid>https://adolsai.com/archives/Advanced-Memory-Management-Programming-Guide.html</guid><description>&lt;h2 id="关于ios内存管理"&gt;关于iOS内存管理&lt;/h2&gt;&#10;&lt;blockquote&gt;&#10;&lt;p&gt;该文章包含了一些ARC出现之前的内存管理方法，看完之后去看 《 &lt;em&gt;Transitioning to ARC Release Notes&lt;/em&gt; 》可以更加完整地把知识结合起来。&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;p&gt;内存管理可以理解为把内存这种有限的资源分配给一个application里面所有代码和数据的动作。&lt;/p&gt;&#10;&lt;p&gt;使用Objective-C的时候，内存管理实际上就是对app内使用的Object的关系的管理。因为iOS的内存管理是基于&lt;em&gt;reference counting&lt;/em&gt;的。&lt;/p&gt;&#10;&lt;p&gt;目标是app占用的内存中不包含任何不需要的object。&lt;/p&gt;</description></item><item><title>Concurrency Programming Guide 4 Dispatch Queues</title><link>https://adolsai.com/archives/Concurrency-Programming-Guide-4-Dispatch-Queues.html</link><pubDate>Fri, 31 Jul 2015 00:39:00 +0800</pubDate><guid>https://adolsai.com/archives/Concurrency-Programming-Guide-4-Dispatch-Queues.html</guid><description>&lt;h1 id="dispatch-queues"&gt;Dispatch Queues&lt;/h1&gt;&#10;&lt;h2 id="type-of-dispatch-queues"&gt;type of Dispatch Queues&lt;/h2&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;类型&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;描述&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;限制&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Serial&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;也叫&lt;em&gt;private dispatch queue&lt;/em&gt;，串行执行queue上的每一个task。 每一个task都在独立的线程里运行，由dispatch queue统一管理。经常用来控制对特定资源的访问（如临界资源）。&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;木有限制，你可以创建任意多个的serial dispatch queue，他们之间是并行的。&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Concurrent&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;也叫&lt;em&gt;global diapatch queue&lt;/em&gt;，并行执行queue里面的每一个task。每一个task都在独立的线程里运行，由dispatch queue统一管理。并行的数量是动态地，由system当前的资源状态决定。&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;concurrent dispatch queue有四个，由系统提供，根据优先级别区分为default、low、high、background。&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Main dispatch queue&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;这个diapatch queue在main thread里串行执行task。所以这个queue是关联main thread的run loop的，用来执行dispatch source相关的任务。因为该queue在main thread执行task，所以常用作各任务的同步点&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;全局唯一的特殊serial dispatch queue&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;</description></item><item><title>Concurrency Programming Guide 3 Operation Queues</title><link>https://adolsai.com/archives/Concurrency-Programming-Guide-3-Operation-Queues.html</link><pubDate>Tue, 28 Jul 2015 19:55:00 +0800</pubDate><guid>https://adolsai.com/archives/Concurrency-Programming-Guide-3-Operation-Queues.html</guid><description>&lt;h1 id="operation-queues"&gt;Operation Queues&lt;/h1&gt;&#10;&lt;h2 id="与gcd对比"&gt;与&lt;strong&gt;GCD&lt;/strong&gt;对比&lt;/h2&gt;&#10;&lt;ol start="0"&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;稍微慢一点点，因为是&lt;strong&gt;NSOperation&lt;/strong&gt;和&lt;strong&gt;NSOperationQueue&lt;/strong&gt;基于&lt;strong&gt;GCD&lt;/strong&gt;的(在Mac OS X v10.6 &amp;amp; iOS 4之后&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt;);&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;Operation Queue可以实现operation的dependency功能，使之在制定的operation完成之后再运行。而且指定线程可以在不同的operation queue里跑;&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;可以重用、取消、暂停operation;&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;可以使用&lt;strong&gt;KVO&lt;/strong&gt;，方便监控operation的运行状态;&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;Operation既可以直接调用&lt;code&gt;start&lt;/code&gt;方法独立运行也可以add到operation queue里面跑;&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;可以使用&lt;code&gt;setCompletionBlock:&lt;/code&gt;设置一个operation执行完之后的动作;&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;可以定义operation优先级别&lt;code&gt;setQueuePriority:&lt;/code&gt;;&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ol&gt;</description></item><item><title>Concurrency Programming Guide 2 Concurrency and Application Design</title><link>https://adolsai.com/archives/Concurrency-Programming-Guide-2-Concurrency-and-Application-Design.html</link><pubDate>Tue, 28 Jul 2015 18:02:00 +0800</pubDate><guid>https://adolsai.com/archives/Concurrency-Programming-Guide-2-Concurrency-and-Application-Design.html</guid><description>&lt;h1 id="concurrency-and-application-design"&gt;Concurrency and Application Design&lt;/h1&gt;&#10;&lt;p&gt;关于iOS多线程先看这个：&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;blockquote&gt;&#10;&lt;p&gt;&lt;a href="http://geeklu.com/2012/02/thread/"&gt;Mac&amp;amp;iOS之多线程&lt;/a&gt;&#10;###一.线程概述&lt;/p&gt;&#10;&lt;p&gt;有些程序是一条直线，起点到终点；有些程序是一个圆，不断循环，直到将它切断。直线的如简单的Hello World，运行打印完,它的生命周期便结束了，像昙花一现那样；圆如操作系统，一直运行直到你关机。&lt;/p&gt;&#10;&lt;/blockquote&gt;</description></item><item><title>Concurrency Programming Guide 1 Glossary</title><link>https://adolsai.com/archives/Concurrency-Programming-Guide-1-Glossary.html</link><pubDate>Tue, 28 Jul 2015 14:05:00 +0800</pubDate><guid>https://adolsai.com/archives/Concurrency-Programming-Guide-1-Glossary.html</guid><description>&lt;h1 id="术语表"&gt;术语表&lt;/h1&gt;&#10;&lt;h4 id="application"&gt;application&lt;/h4&gt;&#10;&lt;p&gt;我们常说的APP，包含用户互交界面的应用程序&lt;/p&gt;&#10;&lt;h4 id="asynchronous-design-approach"&gt;asynchronous design approach&lt;/h4&gt;&#10;&lt;p&gt;异步设计方法&lt;/p&gt;&#10;&lt;p&gt;asynchonous是指让代码跑在别的线程上，而不是发起的线程上。使用多核处理器资源来提高程序的运行效率。&lt;/p&gt;&#10;&lt;h4 id="block-object"&gt;block object&lt;/h4&gt;&#10;&lt;p&gt;一种C结构体，包含了代码和相关数据。使用block可以很方便的把一段包含数据的代码交给其他线程执行。关于block的具体介绍见 &lt;em&gt;Block Programing Guide&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Key Value Coding and Key Value Observing</title><link>https://adolsai.com/archives/Key-Value-Coding-and-Key-Value-Observing.html</link><pubDate>Thu, 23 Jul 2015 15:26:00 +0800</pubDate><guid>https://adolsai.com/archives/Key-Value-Coding-and-Key-Value-Observing.html</guid><description>&lt;h1 id="key-value-coding"&gt;Key Value Coding&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/h1&gt;&#10;&lt;h2 id="简介"&gt;简介&lt;/h2&gt;&#10;&lt;p&gt;**KVC(Key-value coding)**是一套利用字符串标识符间接访问对象属性和关系的机制,由&lt;a href="https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Protocols/NSKeyValueCoding_Protocol/index.html"&gt;&lt;code&gt;NSKeyValueCoding informal protocal&lt;/code&gt;&lt;/a&gt;定义。&lt;/p&gt;</description></item><item><title>Date and Time Programming Guide 2</title><link>https://adolsai.com/archives/Date-and-Time-Programming-Guide-2.html</link><pubDate>Tue, 16 Jun 2015 14:01:00 +0800</pubDate><guid>https://adolsai.com/archives/Date-and-Time-Programming-Guide-2.html</guid><description>&lt;p&gt;&lt;embed id="xunlei_com_thunder_helper_plugin_d462f475-c18e-46be-bd10-327458d045bd" type="application/thunder_download_plugin" height="0" width="0"/&gt;坑着先&lt;/p&gt;</description></item><item><title>Date and Time Programming Guide 1</title><link>https://adolsai.com/archives/Data-and-Time-Programming-Guide-1.html</link><pubDate>Sat, 13 Jun 2015 01:00:00 +0800</pubDate><guid>https://adolsai.com/archives/Data-and-Time-Programming-Guide-1.html</guid><description>&lt;h2&gt;Dates&lt;br/&gt;&lt;/h2&gt;&lt;h3&gt;Creating Time Objects&lt;br/&gt;&lt;/h3&gt;</description></item><item><title>Binary Data Programming Guide</title><link>https://adolsai.com/archives/Binary-Data-Programming-Guide.html</link><pubDate>Fri, 12 Jun 2015 16:38:00 +0800</pubDate><guid>https://adolsai.com/archives/Binary-Data-Programming-Guide.html</guid><description>&lt;h2&gt;Contents&lt;/h2&gt;&lt;blockquote&gt;&lt;p&gt;Data Objects //数据封装类&lt;/p&gt;&lt;p&gt;Working With Binary Data //创建和使用样例&lt;/p&gt;&lt;p&gt;Working With Mutable Binary Data //修改NSMutableData&lt;/p&gt;&lt;/blockquote&gt;</description></item><item><title>String Programming Guide 3 (完)</title><link>https://adolsai.com/archives/String-Programming-Guide-3.html</link><pubDate>Thu, 11 Jun 2015 14:32:00 +0800</pubDate><guid>https://adolsai.com/archives/String-Programming-Guide-3.html</guid><description>&lt;h2&gt;Character Sets&lt;br/&gt;&lt;/h2&gt;&lt;p&gt;NSCharacterSet, NSMutableCharacterSet&lt;/p&gt;&lt;h3&gt;Character Set Basics&lt;/h3&gt;&lt;p&gt;NSString 和 NSScanner 都有通过 NSCharacterSet 来实现其查找排序等功能&lt;br/&gt;&lt;/p&gt;</description></item><item><title>String Programming Guide 2</title><link>https://adolsai.com/archives/String-Programming-Guide-2.html</link><pubDate>Wed, 10 Jun 2015 10:41:00 +0800</pubDate><guid>https://adolsai.com/archives/String-Programming-Guide-2.html</guid><description>&lt;h2&gt;String Format Specifiers&lt;/h2&gt;&lt;h3&gt;Format Specifiers&lt;br/&gt;&lt;/h3&gt;&lt;p&gt;IEEE printf specification:&lt;br/&gt;&lt;/p&gt;</description></item><item><title>String Programming Guide 1</title><link>https://adolsai.com/archives/String-Programming-Guide-1.html</link><pubDate>Mon, 08 Jun 2015 21:57:00 +0800</pubDate><guid>https://adolsai.com/archives/String-Programming-Guide-1.html</guid><description>&lt;p&gt;&amp;nbsp;NSString 和 NSMutableString 的基本用法和一些注意事项.&lt;/p&gt;&lt;p&gt;官方原文链接:&lt;a href="https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/Strings/introStrings.html#//apple_ref/doc/uid/10000035i"&gt;String Programming Guide&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Number and Value Programming Topics</title><link>https://adolsai.com/archives/Number-and-Value-Programming-Topics.html</link><pubDate>Mon, 01 Jun 2015 18:12:00 +0800</pubDate><guid>https://adolsai.com/archives/Number-and-Value-Programming-Topics.html</guid><description>&lt;p&gt;这是一个关于C基本数值类型的封装类 NSValue及亲儿子NSNumber, NSDecimalNumber, 和隔壁NSnull的故事&lt;/p&gt;&lt;p&gt;官方原文链接:&lt;a href="https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/NumbersandValues/NumbersandValues.html#//apple_ref/doc/uid/10000038i"&gt;Number and Value Programming Topics&lt;/a&gt;&lt;/p&gt;</description></item><item><title>iOS Data management - Data Management Starting Point</title><link>https://adolsai.com/archives/iOS-Data-management---Data-Management-Starting-Point.html</link><pubDate>Mon, 01 Jun 2015 17:32:00 +0800</pubDate><guid>https://adolsai.com/archives/iOS-Data-management---Data-Management-Starting-Point.html</guid><description>&lt;p&gt;&lt;a href="https://developer.apple.com/library/ios/referencelibrary/GettingStarted/GS_DataManagement_iPhone/index.html#//apple_ref/doc/uid/TP40007299" _src="https://developer.apple.com/library/ios/referencelibrary/GettingStarted/GS_DataManagement_iPhone/index.html#//apple_ref/doc/uid/TP40007299"&gt;https://developer.apple.com/library/ios/referencelibrary/GettingStarted/GS_DataManagement_iPhone/index.html&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;这是iOS Developer Library里面关于数据管理的入门文档.&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;内容划分如下:&lt;/p&gt;&lt;p class="p1"&gt;&lt;span class="s1"&gt;Contents:&lt;/span&gt;&lt;/p&gt;&lt;ul class="ul1 list-paddingleft-2"&gt;&lt;li&gt;&lt;p&gt;&lt;span class="s2"&gt;&lt;/span&gt;&lt;span class="s1"&gt;Get Up and Running&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;span class="s2"&gt;&lt;/span&gt;&lt;span class="s1"&gt;Become Proficient&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;span class="s2"&gt;&lt;/span&gt;&lt;span class="s1"&gt;Provide Application-Level Preferences&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;span class="s2"&gt;&lt;/span&gt;&lt;span class="s1"&gt;Access Contact Information&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</description></item><item><title>Objective-C Learning Notes - apple UI Sample Code</title><link>https://adolsai.com/archives/Objective-C-Learning-Notes---apple-ui-sample-code.html</link><pubDate>Fri, 20 Feb 2015 23:44:00 +0800</pubDate><guid>https://adolsai.com/archives/Objective-C-Learning-Notes---apple-ui-sample-code.html</guid><description>&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="https://developer.apple.com/library/ios/samplecode/UICatalog/Introduction/Intro.html" _src="https://developer.apple.com/library/ios/samplecode/UICatalog/Introduction/Intro.html"&gt;https://developer.apple.com/library/ios/samplecode/UICatalog/Introduction/Intro.html&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description></item><item><title>Objective-C Learning Notes - UIPageControl</title><link>https://adolsai.com/archives/Objective-C-Learning-Notes---UIPageControl.html</link><pubDate>Fri, 20 Feb 2015 20:19:40 +0800</pubDate><guid>https://adolsai.com/archives/Objective-C-Learning-Notes---UIPageControl.html</guid><description>&lt;p&gt;&#10; UIPageControl&lt;br/&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&#10; 翻页控件&#10;&lt;/p&gt;&#10;&lt;p&gt;&#10; UIPageControl 控件在 iOS 应用程序中出现的比较频繁,尤其在和 UIScrollView 配合来显示大量数据.&#10;&lt;/p&gt;&#10;&lt;p&gt;&#10; 创建:&#10;&lt;/p&gt;&#10;&lt;pre class="brush:cpp;toolbar:false"&gt;UIPageControl *myPageControl = [[UIPageControl alloc] initWithFrame:CGRectMake(0.0,400.0, 320.0, 0.0)];&lt;/pre&gt;&#10;&lt;p&gt;&#10; 设置属性:&#10;&lt;/p&gt;&#10;&lt;pre class="brush:cpp;toolbar:false"&gt;myPageControl.numberOfPage = 5; //页面数目&#10;myPageControl.currentPage = 3; //当前页数,第四页&#10;myPageControl.hidesForSinglePage = YES; //隐藏指示器&#10;myPageControl.defersCurrentPageDisplay = YES;&#10;[myPageControl updateCurrentPageDisplay];&lt;/pre&gt;</description></item><item><title>Objective-C语法快速参考</title><link>https://adolsai.com/archives/77.html</link><pubDate>Fri, 20 Feb 2015 01:14:00 +0800</pubDate><guid>https://adolsai.com/archives/77.html</guid><description>&lt;p style="font-size: 12px; color: rgb(53, 56, 61); white-space: normal; margin-top: 0px; margin-bottom: 0px; font-family: &amp;#39;Lucida Grande&amp;#39;; min-height: 13px; background-color: rgb(255, 255, 255);"&gt;&lt;span style="letter-spacing: 0px;"&gt;大部分有一点其他平台开发基础的初学者看到XCode，第一感想是磨拳擦掌，看到Interface Builder之后，第一感想是跃跃欲试，而看到Objective-C的语法，第一感想就变成就望而却步了。好吧，我是在说我自己。&lt;/span&gt;&lt;/p&gt;&lt;p style="font-size: 12px; color: rgb(53, 56, 61); white-space: normal; margin-top: 0px; margin-bottom: 0px; font-family: &amp;#39;Lucida Grande&amp;#39;; min-height: 13px; background-color: rgb(255, 255, 255);"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="font-size: 12px; color: rgb(53, 56, 61); white-space: normal; margin-top: 0px; margin-bottom: 0px; font-family: &amp;#39;Lucida Grande&amp;#39;; background-color: rgb(255, 255, 255);"&gt;&lt;span style="letter-spacing: 0px;"&gt;如果你和我一样，对苹果相关的开发：Mac OS X或是iPhone有兴趣，但是第一时间看到Objective-C就会头疼并伴有发烧症状的话，疗效比较好的快速治疗方法是阅读本文。大概花二十分钟左右，而且绝不无聊的时间，你就会对Objective-C有那么一点点了解，至少读读例子不会那么头疼了。&lt;/span&gt;&lt;/p&gt;</description></item><item><title>Objective-C Learning Notes - Base Note1</title><link>https://adolsai.com/archives/Objective-C-Learning-Notes---Base-Note1.html</link><pubDate>Fri, 20 Feb 2015 00:54:04 +0800</pubDate><guid>https://adolsai.com/archives/Objective-C-Learning-Notes---Base-Note1.html</guid><description>&lt;p&gt;来源:&lt;a href="http://www.cocoachina.com/bbs/read.php?tid-167908.html" _src="http://www.cocoachina.com/bbs/read.php?tid-167908.html"&gt;http://www.cocoachina.com/bbs/read.php?tid-167908.html&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Objective-C Learning Notes - UIScrollView</title><link>https://adolsai.com/archives/Objective-C-Learning-Notes---UIScrollView.html</link><pubDate>Fri, 20 Feb 2015 00:47:00 +0800</pubDate><guid>https://adolsai.com/archives/Objective-C-Learning-Notes---UIScrollView.html</guid><description>&lt;p&gt;&#10; 原文 shit 一样的翻译:&#10;&lt;/p&gt;&#10;&lt;blockquote&gt;&#10; &lt;p&gt;&#10; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;在滚动过程中,其实是在修改远点的坐标. 当手指触摸后, UIScrollView 会使用一个计时器暂时拦截触摸事件. 假如在计时器到点后没有发生手指移动事件, 那么 UIScrollView 发送tracking events 到被单击的 subview. 假如在计时器到点之前发生了移动事件,那么 UIScrollView 取消 tracking 自己发生移动.&#10; &lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;p&gt;&#10; 初始化:&#10;&lt;/p&gt;&#10;&lt;pre class="brush:cpp;toolbar:false"&gt;UIScrollView *sv = [[UIScrollView alloc]initWithFrame:CGRectMake(0.0,0.0,self.view.frame.size.width,400.0)];&lt;/pre&gt;</description></item><item><title>Objective-C Learning Notes - UIWebView4(坑)</title><link>https://adolsai.com/archives/Objective-C-Learning-Notes---UIWebView4.html</link><pubDate>Thu, 19 Feb 2015 21:11:00 +0800</pubDate><guid>https://adolsai.com/archives/Objective-C-Learning-Notes---UIWebView4.html</guid><description>&lt;p class="p1"&gt;在 iOS 应用中,当使用 UIWebView 控件在屏幕中显示指定的网页后,我们可以通过触摸的方式浏览指定的网页.&lt;/p&gt;&lt;p class="p1"&gt;在具体实现时,是通过 webView:shouldStartLoadWithRequest:navigationType 方法来实现的.&lt;/p&gt;&lt;p class="p1"&gt;其中 NavigationType 包括如下所示的可选参数值:&lt;/p&gt;&lt;ul class=" list-paddingleft-2" style="list-style-type: disc;"&gt;&lt;li&gt;&lt;p class="p1"&gt;UIWebViewNavigationTypeLinkClick //链接被触摸时请求这个链接&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p class="p1"&gt;UIWebViewNavigationTypeFormSubmitted //form 被提交时请求这个 form 的内容&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p class="p1"&gt;UIWebViewNavigationTypeBackForward //当通过 goBack 或者 goForward进行页面转移时移动目标 URL&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p class="p1"&gt;UIWebViewNavigationTypeReload //当页面重新导入时导入这个 URL&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p class="p1"&gt;UIWebViewNavigationTyoeOrther //使用 loadRequest 方法读取内容&lt;br/&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p class="p1"&gt;&lt;span class="s1"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;</description></item><item><title>Objective-C Learning Notes - UIWebView3</title><link>https://adolsai.com/archives/Objective-C-Learning-Notes---UIWebView3.html</link><pubDate>Thu, 19 Feb 2015 19:52:00 +0800</pubDate><guid>https://adolsai.com/archives/Objective-C-Learning-Notes---UIWebView3.html</guid><description>&lt;p&gt;&#10; 加载 html 代码:&#10;&lt;/p&gt;&#10;&lt;p&gt;&#10; 通过使用 UIWebView 的 loadHTMLString:baseURL 方法加载显示如下 HTML 代码:&#10;&lt;/p&gt;&#10;&lt;pre class="brush:cpp;toolbar:false"&gt;&amp;quot;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;[手机号码]&amp;lt;/b&amp;gt;&amp;quot;&#10; &amp;quot;000-00000-0000&amp;lt;hr/&amp;gt;&amp;quot;&#10; &amp;quot;&amp;lt;b&amp;gt;[主页]&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;quot;&#10; &amp;quot;http://www.baidu.com/&amp;quot;;&lt;/pre&gt;&#10;&lt;p class="p1"&gt;&#10; &lt;span class="s1"&gt;&lt;/span&gt;&lt;br/&gt;&#10;&lt;/p&gt;</description></item><item><title>Objective-C Learning Notes - UIWebView2</title><link>https://adolsai.com/archives/Objective-C-Learning-Notes---UIWebView2.html</link><pubDate>Thu, 19 Feb 2015 01:00:28 +0800</pubDate><guid>https://adolsai.com/archives/Objective-C-Learning-Notes---UIWebView2.html</guid><description>&lt;p dir="ltr"&gt;&#10; 使用 UIWebView 加载/显示 PDF Word JPEG 文件&#10;&lt;/p&gt;&#10;&lt;p dir="ltr"&gt;&#10; 关键代码:&#10;&lt;/p&gt;&#10;&lt;p dir="ltr"&gt;&#10; PDF:&#10;&lt;/p&gt;&#10;&lt;pre class="brush:cpp;toolbar:false"&gt;NSString *path = [[NSBundle mainBundle] pathForResource: @&amp;quot;fileName&amp;quot; ofType: @&amp;quot;pdf&amp;quot;];&#10;NSData *data = [NSData dataWithContentOfFile: path];&#10;[myWebView loadData: data MIMEType: @&amp;quot;application/pdf&amp;quot; textEncodingName:nil baseURL: nil];&lt;/pre&gt;&#10;&lt;p dir="ltr"&gt;&#10; &lt;br/&gt;&#10;&lt;/p&gt;</description></item><item><title>Objective-C Learning Notes - UIWebView</title><link>https://adolsai.com/archives/Objective-C-Learning-Notes---UIWebView.html</link><pubDate>Wed, 18 Feb 2015 23:16:00 +0800</pubDate><guid>https://adolsai.com/archives/Objective-C-Learning-Notes---UIWebView.html</guid><description>&lt;p&gt;在 iOS 应用中, Web 视图(UIWebView)是没有边框的 safari 窗口,可以将其加入应用程序并以编程方式进行控制. 通过使用这个类可以显示 HTML, 加载网页及支持缩放.&lt;/p&gt;&lt;p&gt;UIWebView 还可以用于显示如下文件:&lt;/p&gt;&lt;ul class=" list-paddingleft-2" style="list-style-type: disc;"&gt;&lt;li&gt;&lt;p&gt;HTML, 图像和 CSS&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Word 文档(.doc/.docx)&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Excel 电子表格(.xls/.xlsx)&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Keynote 演示文稿(.key.zip)&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Numbers 电子表格(.numbers.zip)&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Pages 文档(.pages.zip)&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;PDF文档(.pdf)&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;PowerPoint 演示文档(.ppt/pptx)&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</description></item><item><title>Objective-C Learning Notes - UISegmentControl 2</title><link>https://adolsai.com/archives/Objective-C-Learning-Notes---UISegmentControl-2.html</link><pubDate>Mon, 16 Feb 2015 00:12:00 +0800</pubDate><guid>https://adolsai.com/archives/Objective-C-Learning-Notes---UISegmentControl-2.html</guid><description>&lt;p&gt;选中时修改 segment 图片:&lt;/p&gt;&lt;p class="p1"&gt;&lt;span class="s1"&gt;&lt;/span&gt;&lt;/p&gt;</description></item><item><title>Objective-C Learning Notes - UISegmentControl</title><link>https://adolsai.com/archives/Objective-C-Learning-Notes---UISegmentControl.html</link><pubDate>Fri, 13 Feb 2015 23:48:55 +0800</pubDate><guid>https://adolsai.com/archives/Objective-C-Learning-Notes---UISegmentControl.html</guid><description>&lt;p&gt;按钮栏&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;可以结合使用索引和实例方法 titleForSegmentAtIndex 来获取每个分段的标题.要获取分段控件中当前选定的标题,可以使用以下代码段:&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[mySegment titleForSegmentAtIndex:mySegment.selectSegmentIndex];&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;动态实现:&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p class="p1"&gt;&lt;span class="s1"&gt;&lt;/span&gt;&lt;/p&gt;&lt;pre class="brush:cpp;toolbar:false"&gt;#import&amp;nbsp;&amp;lt;UIKit/UIKit.h&amp;gt;&#10;@interface&amp;nbsp;ViewController&amp;nbsp;:&amp;nbsp;UIViewController&#10;@property&amp;nbsp;(strong,nonatomic)UISegmentedControl&amp;nbsp;*mySegmentControl;&#10;@end&lt;/pre&gt;&lt;p class="p4"&gt;&lt;span class="s2"&gt;&lt;/span&gt;&lt;br/&gt;&lt;/p&gt;</description></item><item><title>Objective-C Learning Notes - Second practice using UISlider and UISwitch</title><link>https://adolsai.com/archives/Objective-C-Learning-Notes---Second-practice-using-UISlider-and-UISwitch.html</link><pubDate>Thu, 12 Feb 2015 22:09:00 +0800</pubDate><guid>https://adolsai.com/archives/Objective-C-Learning-Notes---Second-practice-using-UISlider-and-UISwitch.html</guid><description>&lt;p class="p1"&gt;&lt;span class="s1"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: center;"&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;pre class="brush:cpp;toolbar:false"&gt;#import&amp;nbsp;&amp;lt;UIKit/UIKit.h&amp;gt;&#10;@interface&amp;nbsp;ViewController&amp;nbsp;:&amp;nbsp;UIViewController&#10;@property&amp;nbsp;(weak,&amp;nbsp;nonatomic)&amp;nbsp;IBOutlet&amp;nbsp;UILabel&amp;nbsp;*sliderLabel;&#10;@property&amp;nbsp;(weak,&amp;nbsp;nonatomic)&amp;nbsp;IBOutlet&amp;nbsp;UISlider&amp;nbsp;*mySlider;&#10;@property&amp;nbsp;(weak,&amp;nbsp;nonatomic)&amp;nbsp;IBOutlet&amp;nbsp;UISwitch&amp;nbsp;*leftSlider;&#10;@property&amp;nbsp;(weak,&amp;nbsp;nonatomic)&amp;nbsp;IBOutlet&amp;nbsp;UISwitch&amp;nbsp;*rightSlider;&#10;-&amp;nbsp;(IBAction)sliderChanged:(id)sender;&#10;-&amp;nbsp;(IBAction)switchChanged:(id)sender;&#10;@end&lt;/pre&gt;&lt;p class="p4"&gt;&lt;span class="s2"&gt;&lt;/span&gt;&lt;br/&gt;&lt;/p&gt;</description></item><item><title>Objective-C Learning Notes - UISwitch2</title><link>https://adolsai.com/archives/Objective-C-Learning-Notes-UISwitch2.html</link><pubDate>Wed, 11 Feb 2015 22:12:00 +0800</pubDate><guid>https://adolsai.com/archives/Objective-C-Learning-Notes-UISwitch2.html</guid><description>&lt;p&gt;终于有一个正常一点的样例程序了,什么鬼排版啊!!!&lt;/p&gt;&lt;p&gt;简单演示 UISwitch 的常用属性, isOn...&lt;/p&gt;</description></item><item><title>Objective-C Learning Notes - UISwitch (Rewrite)(坑)</title><link>https://adolsai.com/archives/Objective-C-Learning-Notes-UISwitch.html</link><pubDate>Wed, 11 Feb 2015 22:03:00 +0800</pubDate><guid>https://adolsai.com/archives/Objective-C-Learning-Notes-UISwitch.html</guid><description>&lt;p&gt;重写 UISwitch 类以添加修改其文本信息的方法:&lt;/p&gt;&lt;p class="p1"&gt;好讨厌一本书里面的样例程序各个编写习惯都不一样....&lt;/p&gt;&lt;pre class="brush:cpp;toolbar:false"&gt;//&amp;nbsp;&amp;nbsp;UISwitchCustom.h&#10;#import&amp;nbsp;&amp;lt;UIKit/UIKit.h&amp;gt;&#10;/**&#10;&amp;nbsp;添加一个名为&amp;nbsp;extended&amp;nbsp;的&amp;nbsp;category,&amp;nbsp;声明一下&amp;nbsp;UISwitch&amp;nbsp;的&amp;nbsp;setAlertnateColors&amp;nbsp;消息,否则在使用的时候会出现找不到该消息的警告.其实&amp;nbsp;setAlertnateColors&amp;nbsp;已经在&amp;nbsp;UISwitch&amp;nbsp;中实现,只是没u&amp;nbsp;头文件中公开而已,所以在此做一个声明...&#10;&amp;nbsp;当调用setAlertnateColors:YES&amp;nbsp;时,UISwitch&amp;nbsp;的状态为&amp;quot;on&amp;quot;时显示为橙色.&#10;&amp;nbsp;**/&#10;@interface&amp;nbsp;UISwitch&amp;nbsp;(extended)&#10;-&amp;nbsp;(void)&amp;nbsp;setAlertnateColors:(BOOL)boolean;&#10;@end&#10;//自定义&amp;nbsp;slider&amp;nbsp;类,方便存储数据而已(好像&amp;nbsp;wwwww&#10;@interface&amp;nbsp;_UISwitchSlider&amp;nbsp;:&amp;nbsp;UISlider&#10;@end&#10;//自定义&amp;nbsp;UISwitch&amp;nbsp;类并拓展可以修改按钮上面的文字方法&#10;@interface&amp;nbsp;UISwitchCustom&amp;nbsp;:&amp;nbsp;UISwitch&#10;//设置左边的文字&#10;-&amp;nbsp;(void)&amp;nbsp;setLeftLabelText:(NSString&amp;nbsp;*)labelText&#10;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;font:(UIFont&amp;nbsp;*)labelFont&#10;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;color:(UIColor&amp;nbsp;*)labelColor;&#10;//设置右边的文字&#10;-&amp;nbsp;(void)&amp;nbsp;setRightLabelText:(NSString&amp;nbsp;*)labelText&#10;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;font:(UIFont&amp;nbsp;*)labelFont&#10;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;color:(UIColor&amp;nbsp;*)labelColor;&#10;//一个方便创建&amp;nbsp;Label&amp;nbsp;的方法而已,其实它不应该出现在这里的吧...&#10;-&amp;nbsp;(UILabel&amp;nbsp;*)createLabelWithText:(NSString&amp;nbsp;*)labelText&#10;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;font:(UIFont&amp;nbsp;*)labelFont&#10;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;color:(UIColor&amp;nbsp;*)labelColor;&#10;@end&lt;/pre&gt;</description></item><item><title>Objective-C Learning Notes - UIImage(坑)</title><link>https://adolsai.com/archives/Objective-C-Learning-Notes-UIImage.html</link><pubDate>Wed, 11 Feb 2015 20:34:00 +0800</pubDate><guid>https://adolsai.com/archives/Objective-C-Learning-Notes-UIImage.html</guid><description>&lt;p&gt;使用 UIImage 显示图片:(通过 UIImage 的方法 drawAtPoint 或者drawInRect)&lt;/p&gt;</description></item><item><title>Objective-C Learning Notes - UIImageView</title><link>https://adolsai.com/archives/Objective-C-Learning-Notes-UIImageView.html</link><pubDate>Tue, 10 Feb 2015 22:48:00 +0800</pubDate><guid>https://adolsai.com/archives/Objective-C-Learning-Notes-UIImageView.html</guid><description>&lt;p&gt;UIImageView&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;创建方法&lt;/strong&gt;&lt;/p&gt;&lt;ul class=" list-paddingleft-2" style="list-style-type: disc;"&gt;&lt;li&gt;&lt;p&gt;UIImageView *imageView1 = [[UIImageView alloc] init];&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;UIImageView *imageView2 = [[UIImageView alloc] initWithFrame:(CGRect)];&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;UIImageView *imageView3 = [[UIImageView alloc] initWithImage:(UIImage *)];&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;UIImageView *imageView4 = [[UIImageView alloc] initWithImage:(UIImage *) highlightedImage:(UIImage *)];&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;UIImageView *imageView5 = [[UIImageView alloc] initWithCoder:(NSCoder *)];&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description></item><item><title>Objective-C Learning Notes - UIStepper</title><link>https://adolsai.com/archives/Objective-C-Learning-Notes-UIStepper.html</link><pubDate>Tue, 10 Feb 2015 21:45:00 +0800</pubDate><guid>https://adolsai.com/archives/Objective-C-Learning-Notes-UIStepper.html</guid><description>&lt;p&gt;Base Attributes:&lt;/p&gt;&lt;ul class=" list-paddingleft-2" style="list-style-type: disc;"&gt;&lt;li&gt;&lt;p&gt;value;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;minimumValue;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;maximumValue;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;stepValue;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;Other Control Attributes:&lt;/p&gt;&lt;ul class=" list-paddingleft-2" style="list-style-type: disc;"&gt;&lt;li&gt;&lt;p&gt;continuous;//是否持续触发 UIControlEventValueChanged 事件&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;autorepeat;//按住的时候是否持续触发,默认是 YES&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;wraps;//是否在 min 和 max 之间循环,默认 NO&lt;br/&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description></item><item><title>Objective-C Learning Notes - UISlider</title><link>https://adolsai.com/archives/Objective-C-Learning-Notes-UISlider.html</link><pubDate>Mon, 09 Feb 2015 22:28:00 +0800</pubDate><guid>https://adolsai.com/archives/Objective-C-Learning-Notes-UISlider.html</guid><description>&lt;p&gt;base attributes:&lt;/p&gt;&lt;ul class=" list-paddingleft-2" style="list-style-type: disc;"&gt;&lt;li&gt;&lt;p&gt;minimumValue;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;maximumValue;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;UIImage.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;br/&gt;</description></item><item><title>Objective-C Learning Notes - First practice using UITextField and UITextView and UIButton</title><link>https://adolsai.com/archives/Objective-C-Learning-Notes-First-practice.html</link><pubDate>Mon, 09 Feb 2015 19:36:00 +0800</pubDate><guid>https://adolsai.com/archives/Objective-C-Learning-Notes-First-practice.html</guid><description>&lt;p&gt;联合使用文本框,文本视图和按钮创建个简单的故事生成器(伪:&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;让用户通过3个文本框(UITextField)输入一个名词(地点),一个动词和一个数字.用户还可以输入或修改一个模板,该模板包含将生成的故事概要.由于模板可能多行,因此将使用一个文本视图(UITextView)来显示这些信息.当用户按下按钮(UIButton)时将触发一个操作,该操作将生成故事并将其输入到另一个文本视图中.&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description></item><item><title>Objective-C Learning Notes - UILabel</title><link>https://adolsai.com/archives/object-c-learning-notes-uilabel-and-uibutton.html</link><pubDate>Tue, 03 Feb 2015 21:29:00 +0800</pubDate><guid>https://adolsai.com/archives/object-c-learning-notes-uilabel-and-uibutton.html</guid><description>&lt;p&gt;UILabel&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Base Attributes：&lt;br/&gt;&lt;/p&gt;&lt;ul class=" list-paddingleft-2" style="list-style-type: disc;"&gt;&lt;li&gt;&lt;p&gt;font&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;size&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;backgroundColor &amp;amp; align&lt;/p&gt;&lt;/li&gt;&lt;ul class=" list-paddingleft-2" style="list-style-type: square;"&gt;&lt;li&gt;&lt;p&gt;UITextAlignmentLeft&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;UITextAlignmentCenter&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;UITextAlignmentRight&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;p&gt;textColor&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;adjustsFontSizeToFitWidth&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description></item><item><title>Objective-C Learning Notes - UITextField and UITextView</title><link>https://adolsai.com/archives/object-c-learning-notes-uitextfiled-and-uitextview.html</link><pubDate>Mon, 02 Feb 2015 22:32:00 +0800</pubDate><guid>https://adolsai.com/archives/object-c-learning-notes-uitextfiled-and-uitextview.html</guid><description>&lt;p&gt;UITextField Attribute that often used:&lt;/p&gt;&lt;ul class=" list-paddingleft-2" style="list-style-type: disc;"&gt;&lt;li&gt;&lt;p&gt;borderStyle;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;background;&lt;br/&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;backgroundColor;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;clearButtonMode;&lt;/p&gt;&lt;/li&gt;&lt;ul class=" list-paddingleft-2" style="list-style-type: square;"&gt;&lt;li&gt;&lt;p&gt;UITextFieldViewModeAlways;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;UITextFieldViewModeNever;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;UITextFieldViewModeWhileEditing;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;UITextFiledViewModeUnlessEditing;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description></item></channel></rss>