close

先學Objective-C吧~GNUstep環境安裝於Windows 這是網路上找的關於在 Windows 上實習 Objective-C 的文章,不過,對於有志跨入 Programming 領域的朋友,建議還是把英文學好,第一手的資源非常豐富

依照「GNUstep環境安裝於Windows 」一文以及參考官方的 Windows Installer 裝好後,依然無法正確開始第一個 program,GNUstep 官方網站找不到比較完整的資料,觀察 shell 會發現其實它是以 MINGW32 為基礎,嘗試幾個錯誤後,發現是HOME的位置的問題,因此,回頭確認 shell 的環境變數,在 shell 中打 set 指令

>set

在裡頭找出 WD = 所指的工作路徑 working directory,以我個人的為例

WD='C:\GNUstep\msys\1.0\\bin\'

後頭再加上你的個人的 profile 位置,例如

PWD=/home/X60

加起來就等於 C:\GNUstep\msys\1.0\\bin\home\X60\

把你的原始碼和 makefile 檔放這裡,回到 shell 敲入 make,成功!

但如果你想換工作路徑該如何呢? 這個問題在 UNIX 世界不是問題,用 link 指過來就好了,所以在 Windows 世界,為了避免影響到整個 GNUstep 的工作環境,暫時就仿照 UNIX 的作法,產生個捷徑指向你個工作路徑

讓我們開始 Objective-C 學習之旅 !

第二步,開始 coding 之前,很重要的是命名原則,coding只有一次,但往後review程式碼的機會可非常多,不要為了一時的便利,而忽略命名原則,以及編寫的規範,還要想想當別人,自己寫的程式一年之後來看也是別人,看不懂而要導致重寫,那可就麻煩了

有關 coding convention 參考資料如下,google很多,我們直接拿第一手的Apple官方的標準 

Introduction to Coding Guidelines for Cocoa

how Cocoa and Objective-C code should look 這篇Scott的文章也是下手處,重點在於裡頭的一句話,putting though into Naming,也就是說,命名的方式,命名的重要性,代表著整個程式的思路和邏輯。不過我們還是回到第一手的Apple官方資料

這裡有一篇中文的 Objective-C Beginner's Guide, 是一個很好的切入點, 可以很快的有一個基本概念

Introduction to Coding Guidelines for Cocoa

迅速看過一次就好,命名原則大致上跟 Java 類似... 但在編碼原則上面,譬如縮排則和 Java 不一樣... 等以後真正開始寫 code 的時候,要記得不斷回來檢視是否有依循命名原則...

接下來,該找個題目來作了

你可以先回到先學Objective-C吧~GNUstep環境安裝於Windows,去完成他的第一個 HelloWorld 程式,摸索一下後,再往下繼續

大家目前如果學 Objective-C, 想必都是為了 iOS 平台的開發, 所以就以 Stanford 的 iPhone 課程 CS193P 為學習教材,CS193P的習題分兩類,一類針對 iOS 的平台UI 介面,一類是 Obj-C 的題目,所以我們先來練習 CS193P(2009-2010 Winter) Lecture #1 Assignment1B.pdf

PS. 話說回來,如果最終還是得回到 Mac Xcode,我們在這裡安裝GNUstep幹麻啊?! 喔~ 是了,3C產品跌價迅速,這段學習與評估的時間,快則1個月,慢則3個月,可以增取到不少的空間,仔細考慮到底是要敗哪一部,避免以購買當成行動的解決方案。不過,這裡有一個在PC上安裝Mac OSX的替代方案可以試試 -> How to Install Mac OS X on a PC (Without Using a Mac)

接下來,我們來看一下 assignment1B要我們完成下面的程式框架

   1:  #import <Foundation/Foundation.h>
   2:  // sample function for one section, use a similar function per section
   3:  void PrintPathInfo() {
   4:       // Code from path info section here
   5:  }
   6:  int main (int argc, const char * argv[]) {
   7:       NSAutoreleasepool * pool = [[NSAutoreleasePool alloc] init];
   8:       PrintPathInfo(); // Section 1
   9:       PrintProcessInfo(); // Section 2
  10:      PrintBookmarkInfo(); // Section 3
  11:      PrintIntrospectionInfo(); // Section 4
  12:      [pool release];
  13:      return 0;
  14:  }

 

首先看到#import, Obj-C用import取代C的include, 這裡是Foundation class的函數列表Foundation Functions Reference, 習題裡用到了 NSLog 這個函數,類似 Java 裡的 Log4j, 格式則跟最原始的 C 的 printf 很像,這裡是輸出格式說明 String Format Specifier

習題裡提到三份文件,分別是

Object-Oriented Programming with Objective-C, 簡單介紹了 Objective-C

The Objective-C Programming Language, 這是 Objective-C 較為完整的說明

iOS Developer Library, 這裡頭就是寶庫了, 包含你所有可能會用到的文件, 其中的 Getting Start, 非常棒且圖文並茂, 讀完後一定對於整個 iOS 的開發有非常完整的了解, 強烈建議由此下手

接下來,你有兩件事情可以做

第一、把 Assignment1B.pdf 抓回來,完成裡面的作業

第二、停下來,到 Getting Start , 看個大概

第三、到這裡,看完 Objective-C Beginner's Guide

這兩件事情做完,如果你還記得回來,那我們就可以一起往下看下去 Round 2,你可以把這裡當成一個參考的資源,當成你的讀書筆記

arrow
arrow
    文章標籤
    coding gnustep cocoa
    全站熱搜

    hulu2020 發表在 痞客邦 留言(0) 人氣()