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 @@
include $(HOME)/Develop/pmade/rc/latex/latex.mk

+ 109
- 0
slides.tex View File

@@ -0,0 +1,109 @@
% ============================================================================
\documentclass[xetex]{beamer}
%\documentclass[aspectratio=169,xetex]{beamer}
\mode<presentation>
\usetheme{default}
\beamertemplatenavigationsymbolsempty % remove presenter buttons

% ============================================================================
\newcommand\MainFont{Juvenis Light}

% ============================================================================
\usepackage{minted}
\usemintedstyle{tango}

% ============================================================================
\usepackage{fontspec}
\usepackage{xunicode}
\usepackage{xltxtra}
\defaultfontfeatures{Scale=MatchLowercase}
\setmainfont[Mapping=tex-text]{\MainFont}
\setsansfont[Mapping=tex-text]{Tahoma}
\setmonofont{Monaco}

% ============================================================================
\newcommand\Header[1]{%
\setmainfont[Mapping=tex-text]{Juvenis Medium}
\begin{center}
\huge#1
\end{center}
\setmainfont[Mapping=tex-text]{\MainFont}}

% ============================================================================
\title{Objective-C Runtime Hacking}
\author{Peter Jones\\pjones@devalot.com\\http://devalot.com}
\institute{Denver iPhone User Group}
\date{November 15, 2011}

% ============================================================================
\begin{document}

% ============================================================================
\begin{frame}
\titlepage
\end{frame}

% ============================================================================
\begin{frame}
\Header{Interrupt me, please}
\end{frame}

% ============================================================================
\begin{frame}
\Header{Slides and then code}
\end{frame}

% ============================================================================
\begin{frame}
\Header{Quick background}
\end{frame}

% ============================================================================
\begin{frame}
\Header{Compile-time}
\end{frame}

% ============================================================================
\begin{frame}
\Header{Runtime}
\end{frame}

% ============================================================================
\begin{frame}
\frametitle{The Objective-C object system}
\begin{itemize}
\item Classes are objects
\end{itemize}
\end{frame}

% ============================================================================
\begin{frame}[fragile]
\frametitle{What is an Objective-C class?}
\large
\begin{minted}{c}
// Before 10.5...
struct objc_class {
struct objc_class *isa;
struct objc_class *super_class;
const char *name;
// ...
};
\end{minted}
\end{frame}

% ============================================================================
\begin{frame}[fragile]
\large\mint{objc}|#import <objc/objc-runtime.h>|
\pause
\large\mint{objc}|Class class = objc_getClass("NSString");|
\pause
\large\mint{objc}|Class parent = class_getSuperclass(class);|
\pause
\large\mint{objc}|class_respondsToSelector(class, @selector(length));|
\pause
\large\mint{objc}|class_getName(class);|
\end{frame}

% ============================================================================
\end{document}

Loading…
Cancel
Save