• 初学ObjectiveC


    闲来无聊看了下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
  • 相关阅读:
    PHP连接FTP服务的简单实现
    Map遍历
    线程的互斥与同步
    Java中Collections.sort()排序详解
    Echarts的赋值,设置数据
    JSON和GSON的使用
    发送邮箱验证
    java中获取服务器的IP和端口
    一个题目涉及到的50个Sql语句
    JAVA面试题二
  • 原文地址:https://www.cnblogs.com/x1957/p/2520714.html
Copyright © 2020-2023  润新知