SlideShare a Scribd company logo
ARC of a Developer Part.2




11   11   22
CoreFoundation

          •C




                                      Quartz
               CoreFoundation         CGxx
                    CFxx


                                CoreAudio



11   11   22
Cocoa CoreFoundation

          •    Cocoa              CoreFoundation


          • NSString -> NSCFString -> CFString




11   11   22
Toll-free Bridge

          • Cocoa            0   CoreFoundation




11   11   22
CF

          • CoreFoundation


          • Cocoa CoreFoundation




               CoreFoundation       Cocoa
                  CFString         NSString




11   11   22
id    Void *


               id obj = [[NSObject alloc]init];
               void *p = obj;

               id o = p;
               [o release];



           ARC



11   11   22
ARC          id -> Void *

          •




               [super didReceiveMemoryWarning];
               id obj = [[NSObject alloc]init];
               void *p = (__bridge void *)obj;

               id o = (__bridge id) p;




11   11   22
• __bridge


          • __bridge_retained


          • __bridge_transfar




11   11   22
__bridge

          •


          • __unsafe_unretained


                  void *p;

                  {
                       id obj = [[NSObject alloc]init];
                       p = (__bridge void *)obj;
                  }
                  //       p




11   11   22
__bridge_retained

          •


               void *p;

               {
                    id obj = [[NSObject alloc]init];
                    p = (__bridge_retained void *)obj;
               }

               //      p
               CFRelease(p);




11   11   22
__bridge_transfar

          •


          •

               CFStringRef p;

               {
                   id obj = [[NSObject alloc]init];
                   p = (__bridge_retained CFStringRef)obj;
               }

               id obj2 = (__bridge_transfer id)p;




11   11   22
CFBridgingRetain CFBridgingRelease

          •

     NS_INLINE CF_RETURNS_RETAINED CFTypeRef CFBridgingRetain(id X) {
         return (__bridge_retained CFTypeRef)X;
     }

     NS_INLINE id CFBridgingRelease(CFTypeRef CF_CONSUMED X) {
         return (__bridge_transfer id)X;
     }


          • CFBridgingRetain __bridge_retained


          • CGBridgingRelease __bridge_transfer




11   11   22
CF

          • CoreFoundation


          •      ARC




11   11   22
Blocks ARC

          •


          •




11   11   22
Git




11   11   22
•


               •


               •




11   11   22
• CVS


          • Subversion


          • Visual Source Safe


          • Git




11   11   22
Git

          •


          • Linux    Linus Torvalds


          •


          •


          • Xcode4




11   11   22
•


               • CVS


               •


          •


               •


               •



11   11   22
checkin   checkout




11   11   22
sync




11   11   22
Git

          •


               •


               •          Sync


          •        Sync


          •




11   11   22
•


               •


               •




11   11   22
Git

          •


               •


          •




11   11   22
A                                                                                             B



          !    touchView = [[TouchDetectView alloc]initWithFrame:mapView.frame];
          !    [self.view insertSubview:touchView atIndex:0];
          !    touchView.delegate = self;
          !    touchView.viewTouched = mapView;
          !    mapView.frame = CGRectMake(0, 0, mapView.frame.size.width, mapView.frame.size.height);
          !    [touchView addSubview:mapView];
          !    mapView.showsUserLocation = NO;




11   11   22
A                                                                                             B



          !    touchView = [[TouchDetectView alloc]initWithFrame:mapView.frame];
          !    [self.view insertSubview:touchView atIndex:0];
          !    touchView.delegate = self;
          !    touchView.viewTouched = mapView;
          !    mapView.frame = CGRectMake(0, 0, mapView.frame.size.width, mapView.frame.size.height);
          !    [touchView addSubview:mapView];




          !    mapView.showsUserLocation = NO;




11   11   22
A                                B




               !   touchView = [[TouchDetectView alloc]initWithFrame:mapView.frame];
               !   [self.view insertSubview:touchView atIndex:0];
               !   touchView.delegate = self;
               !   touchView.viewTouched = mapView;
               !   mapView.frame = CGRectMake(0, 0, mapView.frame.size.width, mapView.frame.size.he
               !   [touchView addSubview:mapView];
               !   mapView.showsUserLocation = NO;




11   11   22
A                                                                            B


               !   touchView = [[TouchDetectView alloc]initWithFrame:mapView.frame];
               !   [self.view insertSubview:touchView atIndex:0];
               !   touchView.delegate = self;
               !   touchView.viewTouched = mapView;
               !   mapView.frame = CGRectMake(0, 0, mapView.frame.size.width, mapView.frame.size.height);
               !   [touchView addSubview:mapView];




               !   mapView.showsUserLocation = NO;




11   11   22
• Github for Mac




11   11   22
•


               •




11   11   22
•


          •    Pull   w




11   11   22
GitHub

          • Git


          •


          •




11   11   22
Github Enterprise




11   11   22
11   11   22

More Related Content

Viewers also liked

Working With Therapeutic Program Parents
Working With Therapeutic Program ParentsWorking With Therapeutic Program Parents
Working With Therapeutic Program Parents
judgeforteens
 
Tuesday
TuesdayTuesday
Sample Selection of Styles
Sample Selection of StylesSample Selection of Styles
Sample Selection of Styles
BIKINIDESIGNERSEXCHANGE
 
Apple Inc
Apple IncApple Inc
Apple Inc
thelostman0
 
การสร้าง organization charts
การสร้าง organization chartsการสร้าง organization charts
การสร้าง organization charts
Phanupong Rong-o
 
เทคนิคการทำPs
เทคนิคการทำPsเทคนิคการทำPs
เทคนิคการทำPs
Phanupong Rong-o
 
Programação para dispositivos móveis com PhoneGap Cordova
Programação para dispositivos móveis com PhoneGap CordovaProgramação para dispositivos móveis com PhoneGap Cordova
Programação para dispositivos móveis com PhoneGap Cordova
Evandro Júnior
 
Antimalarial drug efficacy and drug resistance(yemen)
Antimalarial drug efficacy and drug resistance(yemen)Antimalarial drug efficacy and drug resistance(yemen)
Antimalarial drug efficacy and drug resistance(yemen)
Ghamdan Al Tahish
 
Logica de programação / Algoritmos em Portugol
Logica de programação / Algoritmos em PortugolLogica de programação / Algoritmos em Portugol
Logica de programação / Algoritmos em Portugol
Evandro Júnior
 
Burkholderia spp.
Burkholderia spp.Burkholderia spp.
Burkholderia spp.
Ghamdan Al Tahish
 
Styles
StylesStyles

Viewers also liked (11)

Working With Therapeutic Program Parents
Working With Therapeutic Program ParentsWorking With Therapeutic Program Parents
Working With Therapeutic Program Parents
 
Tuesday
TuesdayTuesday
Tuesday
 
Sample Selection of Styles
Sample Selection of StylesSample Selection of Styles
Sample Selection of Styles
 
Apple Inc
Apple IncApple Inc
Apple Inc
 
การสร้าง organization charts
การสร้าง organization chartsการสร้าง organization charts
การสร้าง organization charts
 
เทคนิคการทำPs
เทคนิคการทำPsเทคนิคการทำPs
เทคนิคการทำPs
 
Programação para dispositivos móveis com PhoneGap Cordova
Programação para dispositivos móveis com PhoneGap CordovaProgramação para dispositivos móveis com PhoneGap Cordova
Programação para dispositivos móveis com PhoneGap Cordova
 
Antimalarial drug efficacy and drug resistance(yemen)
Antimalarial drug efficacy and drug resistance(yemen)Antimalarial drug efficacy and drug resistance(yemen)
Antimalarial drug efficacy and drug resistance(yemen)
 
Logica de programação / Algoritmos em Portugol
Logica de programação / Algoritmos em PortugolLogica de programação / Algoritmos em Portugol
Logica de programação / Algoritmos em Portugol
 
Burkholderia spp.
Burkholderia spp.Burkholderia spp.
Burkholderia spp.
 
Styles
StylesStyles
Styles
 

Similar to Arc of developer part2

UIViewControllerのコーナーケース
UIViewControllerのコーナーケースUIViewControllerのコーナーケース
UIViewControllerのコーナーケース
Katsumi Kishikawa
 
iOS
iOSiOS
storyboard時代のInterfaceBuilder
storyboard時代のInterfaceBuilderstoryboard時代のInterfaceBuilder
storyboard時代のInterfaceBuilder
Hiroyuki Fujikawa
 
Introduction into JavaFX
Introduction into JavaFXIntroduction into JavaFX
Introduction into JavaFX
Eugene Bogaart
 
Swift for-rubyists
Swift for-rubyistsSwift for-rubyists
Swift for-rubyists
Michael Yagudaev
 
Iphone course 2
Iphone course 2Iphone course 2
Iphone course 2
Janet Huang
 
iPhone/iPad开发讲座 第五讲 定制视图和多点触摸
iPhone/iPad开发讲座 第五讲 定制视图和多点触摸iPhone/iPad开发讲座 第五讲 定制视图和多点触摸
iPhone/iPad开发讲座 第五讲 定制视图和多点触摸
Hao Peiqiang
 
I os 11
I os 11I os 11
I os 11
信嘉 陳
 
Quick Start to iOS Development
Quick Start to iOS DevelopmentQuick Start to iOS Development
Quick Start to iOS Development
Jussi Pohjolainen
 
CocoaHeads Toulouse - Guillaume Cerquant - UIView
CocoaHeads Toulouse - Guillaume Cerquant - UIViewCocoaHeads Toulouse - Guillaume Cerquant - UIView
CocoaHeads Toulouse - Guillaume Cerquant - UIView
CocoaHeads France
 
用 IBDesignable 作 UI
用 IBDesignable 作 UI用 IBDesignable 作 UI
用 IBDesignable 作 UI
Tsungyu Yu
 
Core animation
Core animationCore animation
Core animation
Weizhong Yang
 
iOS Beginners Lesson 4
iOS Beginners Lesson 4iOS Beginners Lesson 4
iOS Beginners Lesson 4
Calvin Cheng
 
漫游iOS开发指南
漫游iOS开发指南漫游iOS开发指南
漫游iOS开发指南
jeff kit
 
iOS Development: What's New
iOS Development: What's NewiOS Development: What's New
iOS Development: What's New
NascentDigital
 
Our Choice:电子书的新交互方式探讨
Our Choice:电子书的新交互方式探讨Our Choice:电子书的新交互方式探讨
Our Choice:电子书的新交互方式探讨
foxgem
 
New to native? Getting Started With iOS Development
New to native?   Getting Started With iOS DevelopmentNew to native?   Getting Started With iOS Development
New to native? Getting Started With iOS Development
Geoffrey Goetz
 
Tools and practices for rapid application development
Tools and practices for rapid application developmentTools and practices for rapid application development
Tools and practices for rapid application development
Zoltán Váradi
 
iOS: Implementing a Custom View
iOS: Implementing a Custom ViewiOS: Implementing a Custom View
iOS: Implementing a Custom View
Jussi Pohjolainen
 
Onsg11 iphone
Onsg11 iphoneOnsg11 iphone
Onsg11 iphone
Shota Fukumori
 

Similar to Arc of developer part2 (20)

UIViewControllerのコーナーケース
UIViewControllerのコーナーケースUIViewControllerのコーナーケース
UIViewControllerのコーナーケース
 
iOS
iOSiOS
iOS
 
storyboard時代のInterfaceBuilder
storyboard時代のInterfaceBuilderstoryboard時代のInterfaceBuilder
storyboard時代のInterfaceBuilder
 
Introduction into JavaFX
Introduction into JavaFXIntroduction into JavaFX
Introduction into JavaFX
 
Swift for-rubyists
Swift for-rubyistsSwift for-rubyists
Swift for-rubyists
 
Iphone course 2
Iphone course 2Iphone course 2
Iphone course 2
 
iPhone/iPad开发讲座 第五讲 定制视图和多点触摸
iPhone/iPad开发讲座 第五讲 定制视图和多点触摸iPhone/iPad开发讲座 第五讲 定制视图和多点触摸
iPhone/iPad开发讲座 第五讲 定制视图和多点触摸
 
I os 11
I os 11I os 11
I os 11
 
Quick Start to iOS Development
Quick Start to iOS DevelopmentQuick Start to iOS Development
Quick Start to iOS Development
 
CocoaHeads Toulouse - Guillaume Cerquant - UIView
CocoaHeads Toulouse - Guillaume Cerquant - UIViewCocoaHeads Toulouse - Guillaume Cerquant - UIView
CocoaHeads Toulouse - Guillaume Cerquant - UIView
 
用 IBDesignable 作 UI
用 IBDesignable 作 UI用 IBDesignable 作 UI
用 IBDesignable 作 UI
 
Core animation
Core animationCore animation
Core animation
 
iOS Beginners Lesson 4
iOS Beginners Lesson 4iOS Beginners Lesson 4
iOS Beginners Lesson 4
 
漫游iOS开发指南
漫游iOS开发指南漫游iOS开发指南
漫游iOS开发指南
 
iOS Development: What's New
iOS Development: What's NewiOS Development: What's New
iOS Development: What's New
 
Our Choice:电子书的新交互方式探讨
Our Choice:电子书的新交互方式探讨Our Choice:电子书的新交互方式探讨
Our Choice:电子书的新交互方式探讨
 
New to native? Getting Started With iOS Development
New to native?   Getting Started With iOS DevelopmentNew to native?   Getting Started With iOS Development
New to native? Getting Started With iOS Development
 
Tools and practices for rapid application development
Tools and practices for rapid application developmentTools and practices for rapid application development
Tools and practices for rapid application development
 
iOS: Implementing a Custom View
iOS: Implementing a Custom ViewiOS: Implementing a Custom View
iOS: Implementing a Custom View
 
Onsg11 iphone
Onsg11 iphoneOnsg11 iphone
Onsg11 iphone
 

Recently uploaded

UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
DianaGray10
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
Claudio Di Ciccio
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
Zilliz
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
Zilliz
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
Matthew Sinclair
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
Zilliz
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Malak Abu Hammad
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
Neo4j
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
Neo4j
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
SOFTTECHHUB
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
KAMESHS29
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
Edge AI and Vision Alliance
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
panagenda
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
danishmna97
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
panagenda
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
SOFTTECHHUB
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
Neo4j
 

Recently uploaded (20)

UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
 

Arc of developer part2

  • 1. ARC of a Developer Part.2 11 11 22
  • 2. CoreFoundation •C Quartz CoreFoundation CGxx CFxx CoreAudio 11 11 22
  • 3. Cocoa CoreFoundation • Cocoa CoreFoundation • NSString -> NSCFString -> CFString 11 11 22
  • 4. Toll-free Bridge • Cocoa 0 CoreFoundation 11 11 22
  • 5. CF • CoreFoundation • Cocoa CoreFoundation CoreFoundation Cocoa CFString NSString 11 11 22
  • 6. id Void * id obj = [[NSObject alloc]init]; void *p = obj; id o = p; [o release]; ARC 11 11 22
  • 7. ARC id -> Void * • [super didReceiveMemoryWarning]; id obj = [[NSObject alloc]init]; void *p = (__bridge void *)obj; id o = (__bridge id) p; 11 11 22
  • 8. • __bridge • __bridge_retained • __bridge_transfar 11 11 22
  • 9. __bridge • • __unsafe_unretained void *p; { id obj = [[NSObject alloc]init]; p = (__bridge void *)obj; } // p 11 11 22
  • 10. __bridge_retained • void *p; { id obj = [[NSObject alloc]init]; p = (__bridge_retained void *)obj; } // p CFRelease(p); 11 11 22
  • 11. __bridge_transfar • • CFStringRef p; { id obj = [[NSObject alloc]init]; p = (__bridge_retained CFStringRef)obj; } id obj2 = (__bridge_transfer id)p; 11 11 22
  • 12. CFBridgingRetain CFBridgingRelease • NS_INLINE CF_RETURNS_RETAINED CFTypeRef CFBridgingRetain(id X) { return (__bridge_retained CFTypeRef)X; } NS_INLINE id CFBridgingRelease(CFTypeRef CF_CONSUMED X) { return (__bridge_transfer id)X; } • CFBridgingRetain __bridge_retained • CGBridgingRelease __bridge_transfer 11 11 22
  • 13. CF • CoreFoundation • ARC 11 11 22
  • 14. Blocks ARC • • 11 11 22
  • 15. Git 11 11 22
  • 16. • • 11 11 22
  • 17. • CVS • Subversion • Visual Source Safe • Git 11 11 22
  • 18. Git • • Linux Linus Torvalds • • • Xcode4 11 11 22
  • 19. • CVS • • • • 11 11 22
  • 20. checkin checkout 11 11 22
  • 21. sync 11 11 22
  • 22. Git • • • Sync • Sync • 11 11 22
  • 23. • • 11 11 22
  • 24. Git • • • 11 11 22
  • 25. A B ! touchView = [[TouchDetectView alloc]initWithFrame:mapView.frame]; ! [self.view insertSubview:touchView atIndex:0]; ! touchView.delegate = self; ! touchView.viewTouched = mapView; ! mapView.frame = CGRectMake(0, 0, mapView.frame.size.width, mapView.frame.size.height); ! [touchView addSubview:mapView]; ! mapView.showsUserLocation = NO; 11 11 22
  • 26. A B ! touchView = [[TouchDetectView alloc]initWithFrame:mapView.frame]; ! [self.view insertSubview:touchView atIndex:0]; ! touchView.delegate = self; ! touchView.viewTouched = mapView; ! mapView.frame = CGRectMake(0, 0, mapView.frame.size.width, mapView.frame.size.height); ! [touchView addSubview:mapView]; ! mapView.showsUserLocation = NO; 11 11 22
  • 27. A B ! touchView = [[TouchDetectView alloc]initWithFrame:mapView.frame]; ! [self.view insertSubview:touchView atIndex:0]; ! touchView.delegate = self; ! touchView.viewTouched = mapView; ! mapView.frame = CGRectMake(0, 0, mapView.frame.size.width, mapView.frame.size.he ! [touchView addSubview:mapView]; ! mapView.showsUserLocation = NO; 11 11 22
  • 28. A B ! touchView = [[TouchDetectView alloc]initWithFrame:mapView.frame]; ! [self.view insertSubview:touchView atIndex:0]; ! touchView.delegate = self; ! touchView.viewTouched = mapView; ! mapView.frame = CGRectMake(0, 0, mapView.frame.size.width, mapView.frame.size.height); ! [touchView addSubview:mapView]; ! mapView.showsUserLocation = NO; 11 11 22
  • 29. • Github for Mac 11 11 22
  • 30. • 11 11 22
  • 31. • Pull w 11 11 22
  • 32. GitHub • Git • • 11 11 22
  • 34. 11 11 22