采用现代Objective-C
- @interface MyObject : NSObject
- + (instancetype)factoryMethodA;
- + (id)factoryMethodB;
- @end
- @implementation MyObject
- + (instancetype)factoryMethodA
- {
- return [[[self class] alloc] init];
- }
- + (id)factoryMethodB
- {
- return [[[self class] alloc] init];
- }
- @end
- void doSomething()
- {
- NSUinteger x, y;
- // Return type of +factoryMethodA is taken to be "MyObject *"
- x = [[MyObject factoryMethodA] count];
- // Return type fo +factoryMethodB is "id"
- y = [[MyObject factoryMethodB] count];
- }
- main.m: 'MyObject' may not respond to 'count'
- @interface MyObjectSubclass : MyObject
- @end
- void doSomethingElse()
- {
- NSString *aString = [MyObjectSubclass factoryMethodA];
- }
- main.m: Incompatible pointer types initializing 'NSString *'
- with an expression of type 'MyObjectSubclass *'
- @interface MyObject
- - (id)myFactoryMethod;
- @end
- @interface MyObject
- - (instancetype)myFactoryMethod;
- @end
- @property (readonly, getter=isBlue) BOOL blue;
- @property (readonly, getter=isBlue) BOOL blue;
- if(color.blue){}
- if(color.isBlue){}
- if([color isBlue]){}
- - (NSColor *)backgroundColor;
- - (void)setBackgroundColor:(NSColor *)color;
- @property (copy) NSColor *backgroundColor;
- typedef NS_ENUM(NSInteger, UITableViewCellStyle){
- UITableViewCellStyleDefault,
- UITableViewCellStyleValue1,
- UITableViewCellStyleValue2,
- UITableViewCellStyleSubtitle
- }
- typedef NS_OPTIONS(NSUInteger, UIViewAutoresizeing){
- UIViewAutoresizeingNone = 0,
- UIViewAutoresizeingFlexibleLeftMargin = 1 << 0,
- UIViewAutoresizeingFlexibleWidth = 1 << 1,
- UIViewAutoresizeingFlexibleRightMargin = 1 << 2,
- UIViewAutoresizeingFlexibleTopMargin = 1 << 3,
- UIViewAutoresizeingFlexibleHeight = 1 << 4,
- UIViewAutoresizeingFlexibleBottomMargin = 1 << 5
- }
- enum{
- UITableViewCellStyleDefault,
- UITableViewCellStyleValue1,
- UITableViewCellStyleValue2,
- UITableViewCellStyleSubtitle
- };
- typedef NSInteger UITableViewCellStyle;
- typedef NS_ENUM(NSInteger, UITableViewCellStyle){
- UITableViewCellStyleDefault,
- UITableViewCellStyleValue1,
- UITableViewCellStyleValue2,
- UITableViewCellStyleSubtitle
- }
- enum {
- UIViewAutoresizeingNone = 0,
- UIViewAutoresizeingFlexibleLeftMargin = 1 << 0,
- UIViewAutoresizeingFlexibleWidth = 1 << 1,
- UIViewAutoresizeingFlexibleRightMargin = 1 << 2,
- UIViewAutoresizeingFlexibleTopMargin = 1 << 3,
- UIViewAutoresizeingFlexibleHeight = 1 << 4,
- UIViewAutoresizeingFlexibleBottomMargin = 1 << 5
- };
- typedef NSUInteger UIViewAutoresizing;
- typedef NS_OPTIONS(NSUInteger, UIViewAutoresizeing){
- UIViewAutoresizeingNone = 0,
- UIViewAutoresizeingFlexibleLeftMargin = 1 << 0,
- UIViewAutoresizeingFlexibleWidth = 1 << 1,
- UIViewAutoresizeingFlexibleRightMargin = 1 << 2,
- UIViewAutoresizeingFlexibleTopMargin = 1 << 3,
- UIViewAutoresizeingFlexibleHeight = 1 << 4,
- UIViewAutoresizeingFlexibleBottomMargin = 1 << 5
- }
采用现代Objective-C的更多相关文章
- 【转】从Go、Swift语言出发
Google于2009年第一次提出了Go的构思,Facebook在去年春天引入了Hack,随后不久Apple也发布了其Swift语言. 在战争中,胜利者写历史书:在科技中,赢的公司都在写编程语言.互联 ...
- 从Go、Swift出发:语言的选择需谨慎
本文转自 : http://www.csdn.net/article/2014-12-09/2823025 摘要:无论是开源的Go,还是闭源的Swift,新的语言总是利弊一体.不过可以确定的是,新的语 ...
- Automake
Automake是用来根据Makefile.am生成Makefile.in的工具 标准Makefile目标 'make all' Build programs, libraries, document ...
- 浅谈Objective—C中的面向对象特性
Objective-C世界中的面向对象程序设计 面向对象称程序设计可能是现在最常用的程序设计模式.如何开发实际的程序是存在两个派系的-- 面向对象语言--在过去的几十年中,很多的面向对象语言被发明出来 ...
- iOS开发——技术精华Swift篇&Swift 2.0和Objective-C2.0混编之第三方框架的使用
swift 语言是苹果公司在2014年的WWDC大会上发布的全新的编程语言.Swift语言继承了C语言以及Objective-C的特性,且克服了C语言的兼容性问题.Swift语言采用安全编程模式,且引 ...
- 第一章 熟悉Objective -C 编写高质量iOS与OS X代码的52 个有效方法
第一章 熟悉Objective -C 编写高质量iOS与OS X代码的52 个有效方法 第一条: 了解Objective-C 语言的起源 关键区别在于 :使用消息结构的语言,其运行时所应执行 ...
- 论文翻译:2020_FLGCNN: A novel fully convolutional neural network for end-to-end monaural speech enhancement with utterance-based objective functions
论文地址:FLGCNN:一种新颖的全卷积神经网络,用于基于话语的目标函数的端到端单耳语音增强 论文代码:https://github.com/LXP-Never/FLGCCRN(非官方复现) 引用格式 ...
- 采用MiniProfiler监控EF与.NET MVC项目(Entity Framework 延伸系列1)
前言 Entity Framework 延伸系列目录 今天来说说EF与MVC项目的性能检测和监控 首先,先介绍一下今天我们使用的工具吧. MiniProfiler~ 这个东西的介绍如下: MVC Mi ...
- 采用EntityFramework.Extended 对EF进行扩展(Entity Framework 延伸系列2)
前言 Entity Framework 延伸系列目录 今天我们来讲讲EntityFramework.Extended 首先科普一下这个EntityFramework.Extended是什么,如下: 这 ...
随机推荐
- HDU 4633 Who's Aunt Zhang(polay计数)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4633 题意:有下面一个魔方.有K种颜色.可以为顶点.边.面(每个面有9个小面)染色.两种染色算作一种当 ...
- chrome下float元素下input选中内容bug
今天在写一个小demo的时候,发现chrome下一个很奇怪的bug. 我的代码如下: <!DOCTYPE html> <html lang="en"> &l ...
- 查看Linux服务器网络状态
ifconfig 用来显示所有网络接口的详细情况的,如:ip地址,子网掩码等. ethx是以太网网卡的名称. 配置文件在/etc/sysconfig/network-scripts/ifcfg-eth ...
- WebActivatorEx
using System; using NLog; using System.Web.Optimization; [assembly: WebActivatorEx.PreApplicationSta ...
- iOS开发:在Swift中调用oc库
先列举这个工程中用到的oc源码库: MBProgressHUD:半透明提示器,Loading动画等 SDWebImage:图片下载和缓存的库 MJRefresh: 下拉刷新,上拉加载 Alamofir ...
- java实现DES算法
import java.util.UUID; import javax.crypto.Cipher; import javax.crypto.SecretKey; import javax.crypt ...
- 在ASP.NET中如何判断用户IE浏览器的版本
f ( Request.Browser.MajorVersion == ) { // to do } ................................................. ...
- IOS cocos2d笔记1
结点添加.删除.获取1.结点:CCNode * childNode = [CCNode node]; 2.加入结点[myNode addChild:childNode z:0 tag:123];//z ...
- erl0003-ets 几种类型的区别和ets效率建议 <转>
rlang内置大数据量数据库 ets,dets 初窥 发布日期:2011-10-24 18:45:48 作者:dp studio ets是Erlang term storage的缩写, dets则 ...
- TransparentBlt、StretchBlt与BitBlt三个函数的区别
jackyhwei 发布于 2011-10-13 10:55 点击:1080次 来自:blog.csdn.net/weiqubo BOOL StretchBlt( int x, //指定目的矩形区域 ...