天天看點

斯坦福大學公開課IOS 7學習筆記 (1)斯坦福大學公開課IOS 7 (1)

斯坦福大學公開課IOS 7 (1)

ios 架構

  • core OS
  • Core Services
  • Media
  • Cocoa Touch

Core OS

OSX Kernel(Unix OS), Power Management, Mach 3.0 ,Keychain Access ,基于BSD(Unix OS) ,Certificates.Sockets,File System,Security ,Bonjour

Core Servives

Collections,Core Location, Address Book , Net Services , Networking , Threading ,File Access, Preferences,SQLite ,URL Utilities

Media

Core Audio, JPEG PNG TIFF, OpenAL,PDF, Audio Mixing, Quartz(2D),Audio Recording,Core Animation, Video Playback,OpenGL ES

Cocoa Touch

Multi-Touch , Alerts, Core Motion, Web View,View Hierarchy, Map Kit, Locaization, Image Picker,Contrals, Camera

MVC

斯坦福大學公開課IOS 7學習筆記 (1)斯坦福大學公開課IOS 7 (1)

Objective-C 初學

//Card.h

#import <Foundation/NSObject.h>
//#import <Foundation/Foundation.h>
//#import Foundation;

@interface Card : NSObject
//預設object-c會自動建立getter與setter
@property {strong ,nonatomic} NSString * contents;
@property {nonatomic} BOOL chosen;
@property {nonatomic} BOOL matched;
//方法預設命名 getter->matched setter->setMatched 
//方法重命名 @property {nonatomic,getter=isMatched} BOOL matched;

- (int ) match:(Card *)card; 
- (int ) matchs:(NSArray *)card; 

@end
           
//Card.m

#import "Card.h"

//私有屬性或方法的聲明,主要用于屬性
@interface Card()

@end


//滅有synthsize你将無法建立card執行個體,而且它沒有名,你無法再getter和setter中引用它
//實際上這些代碼是看不到的,object-c會自動建立
@synthesize contents = _contents;
@synthesize chosen = _chosen;
@synthesize matched = _matched;
//- (NNString *)contents 是一個方法聲明
// - 表示這是一個方法
- (NNString *)contents{
    return _contents;
}

- (void)setContents:(NNString *contents){
     _contents = contents;
 }

- (BOOL) chosen
{
    return _chosen;
}

- (void) setChosen:(BOOL chosen){
    _chosen = chosen;
}

- (BOOL) matched{
    return _matched; 
}

-(void )setMatched:(BOOL matched){
    _matched = matched;
}

@implementation Card


- (int )match:(Card *)card{
    int score = ;

    if([card.contents isEqualToString:self.contents]){
        score=;
    }

    return score;
}

- (int )matchs:(NSArray *)otherCards{
    int score = ;


    for(Card * card in otherCards){
        if([card.contents isEqualToString:self.contents]){
            score=;
        }
    }

    return score;
}
@end