- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我对这段代码有几个问题:
#import "ViewController.h"
@interface ViewController ()
@property (copy, nonatomic) NSArray *myArray;
@end
@implementation ViewController
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
self.myArray= @[@"one", @"two", @"three", @"four"];
}
我知道 self 关键字意味着该方法将被发送到该消息的接收者,如果我正在创建一个简单的命令实用程序代码,我知道何时以及如何使用它,但是在学习创建 iPhone 应用程序和使用每次我看到 self 关键字时 Storyboard都会让我感到困惑,我不知道接收者是哪个对象第二个问题,我知道 @[@"object", @"object"];
是创建 NSArray
对象的快速方法,但是“myArray”是一个属性,不是 NSArray
对象。请解释一下,谢谢。
最佳答案
myArray
是。如您所说,属性(property)的名称。默认情况下,编译器将创建一个名为 _myArray
的实例变量,供该属性使用。在任何情况下,因为您已将属性声明为 NSArray *
类型(并且不是只读的),您可以为其分配一个数组。
self
关键字只是指向“当前”对象的指针,当您键入“self”时,您正在为其编写代码的类的某个实例。如果您将某些内容分配给 self.myArray
,您在其中进行分配的类需要具有 myArray
属性。在您的代码示例中, self
是指向刚刚加载其 View 的 ViewController
的特定实例的指针。当您使用 Storyboard编写 iPhone 分配时,这一切都不会改变。 self
是始终接收使用self
的方法的对象。 (注意:在类方法中使用时,即以+
开头的方法,接收该方法的对象是类本身,而不是类的实例。听起来不要担心这个令人困惑——它并不经常出现。)
如果您发现像 self.myArray
这样的表达式令人困惑,了解属性语法只是方法调用的简写可能会有所帮助。此外,像这样的表达式中的 self
一点也不特殊。语法是 foo.bar
其中 foo
可以是任何对象指针(包括 self
)而 bar
可以是任何属性foo
指向的对象。该表达式直接转换为 [foo bar]
或 [foo setBar:...]
,具体取决于您是读取属性还是为属性赋值。所以,
self.myArray = @[a, b, c];
表示完全与:
[self setMyArray:@[a, b, c]];
关于ios - 使用 self 关键字时的困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23779812/
如果我创建一个对象时没有使用 new 关键字,例如“Object s(someval)”,但该对象的构造函数使用了 new,当该对象超出范围时,是否会调用析构函数为其分配新的空间?我感觉好像是,但我不
在 SQL 语法中,我发现奇怪的规则表明 select * from ONLY (t1)是有效的 SQL。 我的问题是:什么是 ONLY在这种情况下是什么意思? 它在规范的“7.6 table ref
为什么使用 $(this) 而不是重新选择类很重要? 我在代码中使用了大量的动画和 CSS 编辑,并且我知道可以使用 $(this) 来简化它。 最佳答案 当您通过 jQuery 执行 DOM 查询(
我正在尝试使用 IN 关键字编写查询。 表A 属性标识、属性名称 表B key 、属性标识、属性值 根据提供的 key ,我想返回所有 attrName、attrVal 组合。结果将包含两个表中的列。
这个问题在这里已经有了答案: Why would you use "AS" when aliasing a SQL table? (8 个答案) 关闭 9 年前。 我不擅长写查询,但是从我开始使用
我读过,在 Java 中,您不必将 this 关键字显式绑定(bind)到对象,它由解释器完成。它与 Javascript 相反,在 Javascript 中你总是必须知道 this 的值。但是 Ja
Swift 中“with”关键字的用途是什么?到目前为止,我发现如果您需要覆盖现有的全局函数,例如 toDebugString,可以使用该关键字。 // without "with" you
这个问题在这里已经有了答案: What does the keyword "where" in a class declaration do? (7 个答案) 关闭 9 年前。 在下面的一段代码中(
免责声明:swift 菜鸟 您好,我刚刚开始学习 Swift,正在学习 Swift 编程语言(Apple 在 WWDC 期间发布的书籍),并且想知道“where”关键字是什么。它用于 let vege
深入研究文档后,我找不到以下问题的答案: 是否有任何理由反对使用 this 来引用当前对象,如下例所示? type MyStruct struct { someField string } fun
前言 最近在做THINKPHP开发项目中,用到了 parent:: 关键字,实际上 parent::关键字 是PHP中常要用到的一个功能,这不仅仅是在 THINKPHP 项目开发中,即使是一个小型
我们都知道且经常用到 unsigned 关键字,但有没有想过,与此对应的 signed 关键字有啥用? 复制代码 代码如下: int i = 0; signed
this关键字再java里面是一个我认为非常不好理解的概念,:)也许是太笨的原因 this 关键字的含义:可为以调用了其方法的那个对象生成相应的句柄。 怎么理解这段话呢? thinking i
一 什么是 synchronized synchronized 关键字提供了一种锁机制,能够确保共享变量互斥访问,从而防止数据不一致问题的出现。 synchronized 关键字包括 monitor
最近看了几篇 synchronized 关键字的相关文章,收获很大,想着总结一下该关键字的相关内容。 1、synchronized 的作用 原子性:所谓原子性就是指一个操作或者多个操作,要么全部执行并
在本教程中,您将借助示例了解 JavaScript 对象方法和 this 关键字。 在 JavaScript 中,对象也可以包含函数。例如, // object containing meth
有人可以解释一下 PHP“with”的作用吗? 示例开始: 假设我有一个类: \App\fa_batch 这句话有什么区别: $w = (with (new \App\fa_batch))
这个问题在这里已经有了答案: What is the difference between using the colon and as syntax for declaring type? (2
如果我在 WHERE 子句中使用以下任一项,是否会有很大不同: WHERE [Process Code] = 1 AND ([Material ID] = 'PLT' OR [Material ID]
This question is unlikely to help any future visitors; it is only relevant to a small geographic are
我是一名优秀的程序员,十分优秀!