精选文章 OC-改错题

OC-改错题

作者:bagangxin3036 时间: 2015-11-11 09:12:00
bagangxin3036 2015-11-11 09:12:00

1,类方法中不能访问成员变量

2,id后不能加*(因为id相当于NSObject *)

3,id类型的变量不能用点语法

4,类对象只能调用类方法,不能调用对象方法

1.description
#import 
@interface Person : NSObject
@property int age;
@end

@implementation Person
// 类方法中不能访问成员变量
//+ (NSString *)description
- (NSString *)description
{
    return [NSString stringWithFormat:@"_age=%d", _age];
}
@end

// 1个错误

/*-------------------------牛B的分隔线-------------------------*/

2.id、SEL、类对象
#import 
@interface Person : NSObject
- (void)test;
@property int age;
@end

@implementation Person
- (void)test
{
    // 会引发死循环错误
    //[self performSelector:_cmd];
}
@end

int main()
{
    // id后面不能加上*
    //id *p = [[Person alloc] init];
    id p = [[Person alloc] init];
    [p setAge:10];
    
    // id类型的变量不能用点语法
    // p.age = 10;
    
    Class c = [Person class];
    // 类对象只能调用类方法,不能调用对象方法
    //[c test];
    
    return 0;
}

 

转载于:https://www.cnblogs.com/IDRI/p/4957372.html

勿删,copyright占位
分享文章到微博
分享文章到朋友圈

上一篇:dubbo maven依赖配置

下一篇:Random类(随机数)

您可能感兴趣

  • IntellIJ IDEA2020新功能

    一、java 1、Java 14支持:记录和模式匹配 IntelliJ IDEA 2020.1添加了对Java 14及其新功能的支持。IDE不仅添加了对Records的完整代码洞察支持,而且还使您能够快速创建新记录并生成其构造函数和组件,并警告存在的错误。您还将发现对instanceof运算符的模式匹配的支持,包括新的检查和快速修复,该快速修复通过用新的简洁模式变量替换它们来快速简化冗长的i...

  • 前端路 - Webpack

    概述 本质 JavaScript 应用程序的静态模块打包器 核心 加载器(Loader)机制 工作流程 配置初始化 webpack 会首先读取配置文件,执行默认配置 编译前准备 webpack 会实例化 compiler,注册 plugins、resolverFactory、hooks。 reslove 前准备 webpack 实例化 compilation、NormalModuleFact...

  • 有关string stringbuff stringbuild 的区别

    string stringbuff stringbuild的执行效率: stringbuild>stringbuff>string String类是不可变类,任何对String的改变都会引发新的String对象的生成; StringBuffer是可变类,任何对它所指代的字符串的改变都不会产生新的对象,线程安全的。 StringBuilder是可变类,线性不安全的,不支持并发操作,不适合多线程...

  • Java异常面试题(2020最新版)

    文章目录 Java异常架构与异常关键字 Java异常简介 Java异常架构 1. Throwable 2. Error(错误) 3. Exception(异常) 运行时异常 编译时异常 4. 受检异常与非受检异常 受检异常 非受检异常 Java异常关键字 Java异常处理 声明异常 抛出异常 捕获异常 如何选择异常类型 常见异常处理方式 直接抛出异常 封装异常再抛出 捕获异常 自定义异常 t...

  • 手写mybatis框架(一)通过动态代理简单实现查询功能

    git地址:点我 在手写mybatis简化版框架先了解一下mybatis框架的执行流程。 一、Mybatis框架执行流程 1.配置文件有两种,一个为主配置文件,一个为映射文件。 主配置文件:配置了jdbc等环境信息。 映射文件:配置了接口对应的sql语句映射。 这两个配置文件会被封装到Configuration中。 2.通过mybatis配置文件得到SqlSessionFactory。 3....

  • Webview.apk —— Google 官方的私有插件化方案

    简介: 在 Android 跨入 5.0 版本之后,我们在使用 Android 手机的过程中,可能会发现一个奇特的现象,就是手机里的 WebView 是可以在应用商店升级,而不需要跟随系统. 在 Android 跨入 5.0 版本之后,我们在使用 Android 手机的过程中,可能会发现一个奇特的现象,就是手机里的 WebView 是可以在应用商店升级,而不需要跟随系统的。 这一点在 iOS...

  • 前端实习生面试题分析(一)

    最近面试拿了很多公司的实习offer,只要是面试的都通过了。 接下来就分析下面试题,也能给自己一个提升吧,以便后续的面试更轻车熟路些,题目没什么顺序,想起什么写什么,还有我面试过程中的一些小套路。 估计要写好多,每天写几道题,而且有些经验性的东西也不容易写出来 这篇写的都是类似一些概念性的理论东西。 1.JS防抖和节流 先说为什么要做防抖和节流,针对一些会频繁触发的事件,像scroll、re...

  • 功能fine秒mine!苹果“偷走”了安卓系统,但它表现得更好

    全文共1670字,预计学习时长5分钟 图源:unsplash 不久前的开发者大会上,苹果发布了iOS 14,展示了一些将在今年晚些时候出现在iPhone上的重要功能,比如允许用户将应用程序中的内容导入主屏幕的小部件,以及画中画视频功能。 安卓迷们发现了一些很明显的事情:许多在年度开发者大会上发布的功能已经在安卓上使用了很多年了。没错,小部件从一开始就是安卓系统的一部分,它可以让用户在主屏幕上...

华为云40多款云服务产品0元试用活动

免费套餐,马上领取!
CSDN

CSDN

中国开发者社区CSDN (Chinese Software Developer Network) 创立于1999年,致力为中国开发者提供知识传播、在线学习、职业发展等全生命周期服务。