objective c文章/教程

Objective-C是扩展C的面向对象编程语言,也是iPhone开发用到的主要语言。本书结合理论知识与示例程序,全面而系统地讲述Objective-C编程的相关内容,包括Objective-C在C的基础上引入的特性和Cocoa工具包的功能及其中的框架,以及继承、复合、源文件组织等众多重要的面向对象编程技术。

iOS/Objective-C开发 字典NSDictionary的深复制(使用category)

目标:把NSDictionary对象转换成NSMutableDictionary对象,对象内容是字符串数组,需要实现完全复制(深复制)。  如果调用NSDictionary的mutableCopy方法,可以得到一个NSMutableDictionary对象,但这只是浅复制,如果我们修改NSDictionary中数组内的值(当然,数组必须是NSMutableArray),会发现,NSMutableD »

C# 扩展方法 借签于 Objective-C 扩展类.

作者:不及格的程序员-八神 C#借签了多种语言的特性与功能,下面简单介绍它从Objective-C中引入的扩展方法. 下面的示例演示C#中为 System.String 类定义的一个扩展方法:   namespace ExtensionMethods { public static class MyExtensions { public static int Wo »

为什么 Objective-C 很难

作为一个Objective-C的coder,我总能听到一部分人在这门语言上抱怨有很多问题。他们总在想快速学习这门语言来写一个App出来,但他们也总是联想到Objective-C看上去实在太难了或者在想这些语法符号都是神马玩意?不错,他们问得非常好,所以本人也解释一下为什么很多程序员相比较学习Ruby或者Java很容易,但在决定开发iOS或者OS X应用时会那么犹豫。    语法:  首先我们谈谈神 »

Objective-C学习—UIScrollView控件使用

一、知识点简单介绍 1.UIScrollView控件是什么? (1)移动设备的屏幕⼤大⼩小是极其有限的,因此直接展⽰示在⽤用户眼前的内容也相当有限 (2)当展⽰示的内容较多,超出⼀一个屏幕时,⽤用户可通过滚动⼿手势来查看屏幕以外的内容 (3)普通的UIView不具备滚动功能,不能显⽰示过多的内容 (4)UIScrollView是一个能够滚动的视图控件,可以⽤用来展⽰示⼤大量的内容,并且可以通过滚 »

IOS开发笔记 (2) ---objective c 入门

设置好开发环境后,我们就可以进入IOS开发了. IOS 开发开始还是对基础的语言objective c有一个大致的掌握比较好. 面对许多开发资料,我选择了看官方的文档. http://developer.apple.com 注册了Apple ID 在IOS Developer Library中搜索objective c 发现了一本基础的objective c开发指导的书: The Objectiv »

Objective-C(iOS)严格单例模式正确实现

注:本文所有权归作者所有,转载请注明出处     当希望在一个应用程序中某个类的对象只能存在一个的时候就可以考虑用单例模式来实现,单例模式在C++中比较容易实现(只需把构造函数声明为private),而在Objective-C中对象可以通过NSObject的alloc来产生,所以需要编写一些额外的代码来确保对象的唯一性,考虑到现在编写iOS APP代码几乎都是ARC方式,且GCD也已经被用烂了,故 »

Objective-C实例方法之多个参数声明与调用

类接口文件(MathDiv.h) #import <Foundation/Foundation.h> //Define the Fraction class @interface Fraction: NSObject{    int dividend;    int divider;} @property int dividend, divider; -(void) print;-( »

如何在windows 上用Sublime Text编译objective-c

在windows 上编译OC是很纠结的一件事,建议去买个苹果本或者装个黑苹果。 实在不想买或者装得话,本文章是给初学objective-c用的,如果要深入objective-c,请购买苹果电脑或装黑苹果。   请看下面的步骤:   一、搭建objective-c环境 在windows上搭建objective-c开发环境,需要到GNUstep官网上下载几个软件(http://www.gnustep. »

深入理解Objective-C:优化你的代码

只要用到Objective-C,我们每天都会跟方法调用打交道。我们都知道Objective-C的方法决议是动态的,但是在底层一个方法究竟是怎么找到的,方法缓存又是怎么运作的却鲜为人知。 本文主要从源码角度探究了Objective-C在runtime层的方法决议(Method resolving)过程和方法缓存(Method cache)的实现。 介绍 本文系学习Objective-C的runtim »

使用Pods中使用Swift和Objective-C混编-编译不通过的原因

iOS开发#使用Pods中使用Swift和Objective-C混编-编译不通过的原因-ld: symbol(s) not found for architecture arm64 问题基本描述 在Pods管理的Objective-C中导入Swift过程中出现问题 项目中需要展示报表,而使用的第三方(Charts)是Swift编写的,而我的项目中使用的是Objective编写的,这就涉及混编的问 »

Objective-C @property

Objective-C @property === 我相信对于ios开发者来说,Objective-C的@property都是不太陌生的一个概念。不过最近我参加了一次面试,在问到相关问题的时候还是感觉如鲠在喉,可见一个简单的概念想要清晰的去解释还是需要深刻的理解。故而写这篇博客来巩固一下对于OC的@property的理解。 --- ##@property是什么 @property是编译器的指令 »

Objective-C代码的文件扩展名与数据类型

  Objective-C数据类型可以分为:基本数据类型、对象类型和id类型。 基本数据类型有:int、float、double和char类型。 对象类型就是类或协议所声明的指针类型,例如:SAutoreleasePool * pool,其中NSAutoreleasePool是一个类,NSAutoreleasePool *是它指针类型。 id类型可以表示任何类型,一般只是表示对象类型,不表示基本数 »

iOS利用block实现链式编程方法(Objective-C链式编程)

objc利用block实现链式编程方法   因为不好读。block和其他语言的匿名函数一样,很多程序员刚开始很难主动去用他。   本文描述block作为属性的实际使用,看懂block,并讲解如何利用block实现链式编程方法。    【更新】LinkBlock支持多对象链式编程     写法简单粗暴提升效率 //【New】支持多对象链式编程 //1.如果使用多个对象的链式编程,需要 »

Objective-C 构造方法 分类 类的深入研究

构造方法 1.对象创建的原理 new的拆分两部曲 Person *p = [Person alloc]; 分配内存(+alloc) Person *p = [p init]; 初始化(-init) 合并: Person *p = [[Person alloc] init];  2.init方法的重写 - (void) init { if(self = [super init]) { »

第一条:了解Objective-C语言的起源

Objective-C使用的消息结构而非函数调用。 Objective-C的重要工作都由“运行组件(runtime component)”而非编译器来完成。使用Objective-C的面向对象特性所需的全部数据结构以及函数都在运行期组件里面。需要明白:Objective-C语言中的指针是用来指示对象的。想要声明一个变量,令其指向某个对象,可用以下语法: NSString *someStrin »

Objective-C时间戳转换的转换和时间

什么是时间戳?    时间戳(timestamp),一般是一个字符序列。唯一地标识某一刻的时间。数字时间戳技术是数字签名技术一种变种的应用。    思考:简单来讲就是依据文件hash加密后生成的摘要和时间生成的时间凭证,它的数值是从1970年1月1日8点到如今时间的总的毫秒数   在Objective-C中怎样将时间戳转换为NSDate?    NSString*str=@"1283376197" »

Objective-C中的单例模式(工具类)

单例是iOS开发中经常会用到的一种设计模式,顾名思义,即创建一个类,该类在整个程序的生命周期中只有一个实例对象,无论是通过new,alloc init,copy等方法创建,或者创建多少个对象,自始至终在内存中只会开辟一块空间,直到程序结束,由系统释放. 如下图用不同的方式创建6个对象,但通过打印其内存地址,我们可以发现它们是共享同一块内存空间的.   由于在平时开发中经常用到,所以我将创建单例的 »

using Opencv Objective-C code

In this post I'll use GLImageProcessing sample demo from Apple. Also you will need precompiled OpenCV for iPhone. How to make it read here. I've copied all OpenCV stuff to "opencv" folder into the GLI »

Objective-C 中基于RunTime实现的反射

一、反射 反射,一般表现在字符串和Class转换,字符串和内部方法转换,字符串和属性的转换(取值和赋值)。   二、Objective-C中的反射 OC的反射是基于其Runtime实现的。 以执行某个函数为例,我们知道在OC中执行[Stu doSomething]函数,实质上是发送了一个消息给Runtime,然后Runtime再根据这个Class的字符串名和这个函数的字符串名,去匹配真正相应的方法 »