相关疑难解决方法(0)

"自我"是否必要?

是否在Objective-C中使用"自我"或者只是一个好习惯?我一直没有使用它而根本没有使用它,我似乎没有注意到任何差异.反正不是暗示吗?

iphone objective-c

6
推荐指数
1
解决办法
600
查看次数

Objective-C中_variable和self.variable有什么区别?

我是Objective C和iOS的新手,目前正在尝试使用iOS 6 SDK学习应用程序开发.我真的无法理解的一个概念是在.m文件中访问时"_variable"和"self.variable"之间的区别.它们是一样的吗?还是不同?

以下是一个简单的示例

MyClass.h

#import <Foundation/Foundation.h>

@interface MyClass : NSObject
@property (strong, nonatomic) NSString *myName;
@end
Run Code Online (Sandbox Code Playgroud)

MyClass.m

#import "MyClass.h"

@interface MyClass ()
@property (nonatomic, strong) NSString *anotherName; 
@end

@implementation MyClass
- (void) myFunction {
    _myName = @"Ares";
    self.myName = @"Ares";

    _anotherName = @"Michael";
    self.anotherName = @"Michael";
}
@end
Run Code Online (Sandbox Code Playgroud)

那么上面的实现设置变量有什么不同吗?变量"myName"是Public,而"anotherName"是Private.

非常感谢任何投入.谢谢!

variables objective-c ios6

6
推荐指数
1
解决办法
7176
查看次数

自变量和变量差异

是什么区别self.myVariable = obj;myVariable = obj;,当我使用@propery/ @synthesize创建`MYVARIABLE?

cocoa cocoa-touch objective-c declared-property

5
推荐指数
4
解决办法
2601
查看次数

基本目标C变量声明

我对目标C中声明的变量如何感到困惑.

1:我看到@property并且使用了@synthesize声明.我的问题是,这两个声明是什么?为什么他们总是一起使用?我想@synthesize是创建getter和setter的捷径?

2:说,我想声明一个只能在声明的类中访问的NSMutableArray.我必须myArray = [[NSMutableArray alloc] init]在使用该addObject方法向其写入内容之前执行.我什么时候发布阵列呢?

3:是否有一种不同的方式来声明一个只能在声明可以在所有类中访问的类才能访问的变量?

4:类似于问题2,但现在变量是NSString.为什么我不必分配和初始化它在自己的类中共享相同的变量?请告诉我之间的不同self.myString = @"";myString = @"";

非常感谢.

iphone objective-c

5
推荐指数
2
解决办法
7215
查看次数

如果没有Objective-C中的显式@property,点语法如何工作?

我按照Apple的惯例编写了一个setter和getter方法,并注意到尽管没有变量,我仍然可以使用点语法访问setter和getter.这是正常的行为吗?是什么启用此功能?

例:

// Header definition. Keep in mind there is no class variable or @property for height.
- (void)setHeight:(float)height;
- (float)height;

// else using the dot syntax.
object.height = 10.0f;
Run Code Online (Sandbox Code Playgroud)

cocoa objective-c

1
推荐指数
1
解决办法
342
查看次数

使用obj-c访问器和使用点语法有什么区别?

自从我开始进行iPhone开发以来,我一直很困惑,哪种方式是作为Class中的成员访问数据的最佳方式.

假设我有一个名为MyClass的类,其中我有:

@interface MyClass : NSObject {
    int myInt;
}

@property (nonatomic, assign) int myInt;
Run Code Online (Sandbox Code Playgroud)

在实现中,最好是这样做:

myObject.myInt = 1;
Run Code Online (Sandbox Code Playgroud)

或这个?

[myObject setMyInt:1];
Run Code Online (Sandbox Code Playgroud)

这也适用于读取值.

int newInt = myObject.myInt;
Run Code Online (Sandbox Code Playgroud)

int newInt = [myObject myInt];
Run Code Online (Sandbox Code Playgroud)

iphone macos objective-c accessor

0
推荐指数
1
解决办法
666
查看次数