IOS中nsstring的问题 本帖最后由 wenwei19861106 于 2012-12-03 12:28:38 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 proprety属于抽象概念,实体变量则是在结构中的存储槽,正常情况下,其他对象不能直接访问它们。而property是对象的属性,可以访问。此外,property可以返回或发送一个实体变量, 看下面的例子@interface Person : NSObject { NSString *name;} @property(copy) NSString *name; @property(copy) NSString *firstName; @property(copy) NSString *lastName;@end@implementation Person @synthesize name; - (NSString *)firstName { [[name componentsSeparatedByString:@" "] objectAtIndex:0]; } - (NSString *)lastName { [[name componentsSeparatedByString:@" "] lastObject]; } - (NSString *)setFirstName:(NSString *)newName { NSArray *nameArray = [name componentsSeparatedByString:@" "]; NSArray *newNameArray [[NSArray arrayWithObjects:newName, nil] arrayByAddingObjectsFromArray:[nameArray subarrayWithRange:NSMakeRange(1, [nameArray size]-1)]]; self.name = [newNameArray componentsJoinedByString:@" "]; } - (NSString *)setLastName:(NSString *)newName { NSArray *nameArray = [name componentsSeparatedByString:@" "]; NSArray *newNameArray [[nameArray subarrayWithRange:NSMakeRange(0, [nameArray size]-2)] arrayByAddingObjectsFromArray:[NSArray arrayWithObjects:newName, nil]]; self.name = [newNameArray componentsJoinedByString:@" "]; }@end代码中假设name已经存在,并且有两部分(比如像Bill Gates这样,而不是Gates这种) 在Object-c中添加属性之前,程序员通常会定义一些方法用于设置和检索类得实例变量的值,这些方法称为访问方法和修改方法,亦可称为获取方法和设置方法(java中称为set和get方法)。但是@property声明可以让你告别枯燥乏味的访问方法和修改方法。我们在接口文件中键入的@property声明与实现文件(@synthesize)中的另一个声明相结合,就可以通知编译器在编译时创建获取方法和设置方法。 objectiv-c表达式有没有序列点,副作用? live555 ucenter开发的网站移植到ios平台 x-code运行不了一个简单的交互程序 问一下iOS的工作待遇怎么样 调试查看变量问题 【iOS】为什么循环创建的ImageView点击事件只能被点击一次 求助,用过MP4v2的大神进来帮帮忙 ios 打ipa包 报这个错误 求大神来看一眼 急 急 急 iOS集成app支付宝,在读取私钥的时候发生野指针问题 导致程序崩溃 新手请教iphone 初级问题,急求。。。 IBOutlet是啥类型?
NSString *name;
} @property(copy) NSString *name;
@property(copy) NSString *firstName;
@property(copy) NSString *lastName;
@end@implementation Person
@synthesize name; - (NSString *)firstName {
[[name componentsSeparatedByString:@" "] objectAtIndex:0];
}
- (NSString *)lastName {
[[name componentsSeparatedByString:@" "] lastObject];
}
- (NSString *)setFirstName:(NSString *)newName {
NSArray *nameArray = [name componentsSeparatedByString:@" "];
NSArray *newNameArray [[NSArray arrayWithObjects:newName, nil] arrayByAddingObjectsFromArray:[nameArray subarrayWithRange:NSMakeRange(1, [nameArray size]-1)]];
self.name = [newNameArray componentsJoinedByString:@" "];
}
- (NSString *)setLastName:(NSString *)newName {
NSArray *nameArray = [name componentsSeparatedByString:@" "];
NSArray *newNameArray [[nameArray subarrayWithRange:NSMakeRange(0, [nameArray size]-2)] arrayByAddingObjectsFromArray:[NSArray arrayWithObjects:newName, nil]];
self.name = [newNameArray componentsJoinedByString:@" "];
}
@end代码中假设name已经存在,并且有两部分(比如像Bill Gates这样,而不是Gates这种)