Browse Source

Initial import

master
Peter J. Jones 7 years ago
commit
893119ddbe
2 changed files with 110 additions and 0 deletions
  1. 1
    0
      Makefile
  2. 109
    0
      slides.tex

+ 1
- 0
Makefile View File

@@ -0,0 +1 @@
1
+include $(HOME)/Develop/pmade/rc/latex/latex.mk

+ 109
- 0
slides.tex View File

@@ -0,0 +1,109 @@
1
+% ============================================================================
2
+\documentclass[xetex]{beamer}
3
+%\documentclass[aspectratio=169,xetex]{beamer}
4
+\mode<presentation>
5
+\usetheme{default}
6
+\beamertemplatenavigationsymbolsempty % remove presenter buttons
7
+
8
+% ============================================================================
9
+\newcommand\MainFont{Juvenis Light}
10
+
11
+% ============================================================================
12
+\usepackage{minted}
13
+\usemintedstyle{tango}
14
+
15
+% ============================================================================
16
+\usepackage{fontspec}
17
+\usepackage{xunicode}
18
+\usepackage{xltxtra}
19
+\defaultfontfeatures{Scale=MatchLowercase}
20
+\setmainfont[Mapping=tex-text]{\MainFont}
21
+\setsansfont[Mapping=tex-text]{Tahoma}
22
+\setmonofont{Monaco}
23
+
24
+% ============================================================================
25
+\newcommand\Header[1]{%
26
+  \setmainfont[Mapping=tex-text]{Juvenis Medium}
27
+  \begin{center}
28
+    \huge#1
29
+  \end{center}
30
+  \setmainfont[Mapping=tex-text]{\MainFont}}
31
+
32
+% ============================================================================
33
+\title{Objective-C Runtime Hacking}
34
+\author{Peter Jones\\pjones@devalot.com\\http://devalot.com}
35
+\institute{Denver iPhone User Group}
36
+\date{November 15, 2011}
37
+
38
+% ============================================================================
39
+\begin{document}
40
+
41
+% ============================================================================
42
+\begin{frame}
43
+\titlepage
44
+\end{frame}
45
+
46
+% ============================================================================
47
+\begin{frame}
48
+  \Header{Interrupt me, please}
49
+\end{frame}
50
+
51
+% ============================================================================
52
+\begin{frame}
53
+  \Header{Slides and then code}
54
+\end{frame}
55
+
56
+% ============================================================================
57
+\begin{frame}
58
+  \Header{Quick background}
59
+\end{frame}
60
+
61
+% ============================================================================
62
+\begin{frame}
63
+  \Header{Compile-time}
64
+\end{frame}
65
+
66
+% ============================================================================
67
+\begin{frame}
68
+  \Header{Runtime}
69
+\end{frame}
70
+
71
+% ============================================================================
72
+\begin{frame}
73
+  \frametitle{The Objective-C object system}
74
+  
75
+  \begin{itemize}
76
+  \item Classes are objects
77
+  \end{itemize}
78
+\end{frame}
79
+
80
+% ============================================================================
81
+\begin{frame}[fragile]
82
+  \frametitle{What is an Objective-C class?}
83
+  \large
84
+  \begin{minted}{c}
85
+// Before 10.5...    
86
+struct objc_class {
87
+  struct objc_class *isa;
88
+  struct objc_class *super_class;
89
+  const char *name;
90
+  // ...
91
+};
92
+  \end{minted}
93
+\end{frame}
94
+
95
+% ============================================================================
96
+\begin{frame}[fragile]
97
+  \large\mint{objc}|#import <objc/objc-runtime.h>|
98
+  \pause
99
+  \large\mint{objc}|Class class = objc_getClass("NSString");|
100
+  \pause
101
+  \large\mint{objc}|Class parent = class_getSuperclass(class);|
102
+  \pause
103
+  \large\mint{objc}|class_respondsToSelector(class, @selector(length));|
104
+  \pause
105
+  \large\mint{objc}|class_getName(class);|
106
+\end{frame}
107
+
108
+% ============================================================================
109
+\end{document}

Loading…
Cancel
Save