闲来无聊看了下iOS5编程,第一章是一个Hello World
不过由于书上是以xcode 4.2为基础讲的,和4.3区别很大,我也懒得去研究了。
看第二章吧,讲讲Objectve-C的一些基础知识,看着也没啥吃力的,随便翻了下。
以一个RandomPossession为例子讲的OC的类的创建和一些操作,比如传递消息什么的,和函数调用类似。
Possession.h
#import <Foundation/Foundation.h>
@interface Possession : NSObject
{
NSString *possessionName;
NSString *serialNumber;
int valueInDollars;
NSDate *dateCreated;
}
- (void)setPossessionName:(NSString *)str;
- (NSString *)possessionName;
- (void)setSerialNumber:(NSString *)str;
- (NSString *)serialNumber;
- (void)setValueInDollars:(int)i;
- (int)valueInDollars;
- (NSDate *)dateCreated;
- (id)initWithPossessionName:(NSString *)name
valueInDollars:(int)value
serialNumber:(NSString *)sNumber;
+ (id)randomPossession;
@end
Possession.m
#import "Possession.h"
@implementation Possession
- (void)setPossessionName:(NSString *)str
{
possessionName = str;
}
- (NSString *)possessionName
{
return possessionName;
}
- (void)setSerialNumber:(NSString *)str
{
serialNumber = str;
}
- (NSString *)serialNumber
{
return serialNumber;
}
- (void)setValueInDollars:(int)i
{
valueInDollars = i;
}
- (int)valueInDollars
{
return valueInDollars;
}
- (NSDate *)dateCreated
{
return dateCreated;
}
- (NSString *)description
{
NSString *descriptionString =
[[NSString alloc] initWithFormat:@"%@ (%@): Worth $%d , recorded on %@",
possessionName,
serialNumber,
valueInDollars,
dateCreated];
return descriptionString;
}
- (id)initWithPossessionName:(NSString *)name
valueInDollars:(int)value
serialNumber:(NSString *)sNumber
{
self = [super init];
if(self){
[self setPossessionName:name];
[self setSerialNumber:sNumber];
[self setValueInDollars:value];
dateCreated = [[NSDate alloc] init];
}
return self;
}
+ (id)randomPossession
{
NSArray *randomAdjectiveList = [NSArray arrayWithObjects:@"Fluffy" , @"Rusty" , @"Shiny",nil];
NSArray *randomNounList = [NSArray arrayWithObjects:@"Bear",@"Spork" ,@"Mac" , nil];
int adjectiveIndex = rand() % [randomAdjectiveList count];
int nounIndex = rand() % [randomNounList count];
NSString *randomName = [NSString stringWithFormat:@"%@ %@",
[randomAdjectiveList objectAtIndex:adjectiveIndex],
[randomNounList objectAtIndex:nounIndex]];
int randomValue = rand() % 100;
NSString *randomSerialNumber = [NSString stringWithFormat:@"%c%c%c%c%c",
'0' + rand() % 10,
'A' + rand() % 26,
'0' + rand() % 10,
'A' + rand() % 26,
'0' + rand() % 10];
Possession *newPossession =
[[self alloc] initWithPossessionName:randomName valueInDollars:randomValue serialNumber:randomSerialNumber];
return newPossession;
}
@end
main.m
#import <Foundation/Foundation.h>
#import "Possession.h"
int main(int argc, const char * argv[])
{
@autoreleasepool {
NSMutableArray *items = [[NSMutableArray alloc] init];
for(int i = 0 ; i < 10 ; i++){
Possession *p = [Possession randomPossession];
[items addObject:p];
}
for(Possession *item in items)
NSLog(@"%@" ,item);
[items release];
items = nil;
}
return 0;
}
总的说对这个语言没啥特别的感觉,不过也不讨厌。
by 1957
浙公网安备 33010602011771号