aclass.h
@interface aClass : NSObject {
NSString *name;
}
@property (nonatomic, retain) IBOutlet NSString *name;
@end
Run Code Online (Sandbox Code Playgroud)
aclass.m
@implementation aClass
@synthesize name;
- (void)dealloc {
[name release];
[super dealloc];
}
- (void)test1 {
name = @"hello";
}
- (void)test2 {
self.name = @"hello";
}
Run Code Online (Sandbox Code Playgroud)
以上面为例.可能有人请解释之间的差异name = @"hello"和self.name = @"hello"?谢谢!
在Objective-C类中使用self.varvs.只是有什么区别var?对其中一方有益处或危险吗?
cocoa cocoa-touch objective-c instance-variables declared-property
我是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.
非常感谢任何投入.谢谢!
在处理属性时,我对于正确的约定有点困惑.我将通过一个例子说明我的问题.所以从下面的例子我知道功能上"self.loan = self.loan + 250.00;" 与"_loan = _loan + 250.00;"相同 还是不是?我在网上看到很多教程,可能会也可能不会使用这两种方法来访问属性.那么使用_loan和self.loan之间究竟有什么区别(我知道self.loan与[self setLoan:]相同)
//ClassA.h
@interface ClassA: UIViewController
@property double loan;
@end
//ClassA.m
@implementation ClassA
@synthesize loan = _loan;
-(void)doSomething{
self.loan = self.loan + 250.00; //Exhibit A
_loan = _loan + 250.00; // Exhibit B
}
Run Code Online (Sandbox Code Playgroud) 可能重复:
self.ivar和ivar之间的区别?
我想知道,如果我在Obj-C中将实例变量定义为属性,例如,
@property (copy) NSString *str;
Run Code Online (Sandbox Code Playgroud)
和
@synthesize str = _str;
Run Code Online (Sandbox Code Playgroud)
我应该在实例方法中访问它吗?
_str = @"ABC";
Run Code Online (Sandbox Code Playgroud)
或者我应该使用访问者,即
[self setStr:@"ABC"];
Run Code Online (Sandbox Code Playgroud)
有关于此的一般指导原则吗?
非常感谢!
当我在另一个晚上处理游戏时,我意识到我可以通过使用_myObject而不是减少方法调用的数量来提高我的"tick"代码的性能self.myObject.
假设这myObject是一个属性,由编译器隐式合成,并且已经有一个值,那么底层的那个与顶层的那个做同样的事情吗?
// Non-ARC
self.myObject = [self someValue];
_myObject = [self someValue];
Run Code Online (Sandbox Code Playgroud) 嗨我知道当使用箭头符号(->)访问C中的成员时,* .每次需要访问对象时都需要同时使用star和dot().
但在Objective-C中,self.myivar和之间有什么区别self->myivar?我注意到它们都适用于我的情况,我将myivar声称为属性.
objective-c ×7
iphone ×4
ios ×3
cocoa ×2
cocoa-touch ×2
ios6 ×1
ipad ×1
macos ×1
properties ×1
variables ×1
xcode ×1