2013年9月30日 星期一

Xcode5 IOS7 SDK 不使用 ARC 與 Storyboards

Xcode 5 without ARC and Storyboards

在 Xcode5 的 ios 開發中

Apple 拿掉了 Use Stroyboards 與 Use Automatic Reference Counting 的選項

對於不習慣使用 Storyboard 與 Arc 的人造成一定的困擾(我自己...)

這邊介紹怎麼在 Xcode5 下不使用 Storyboards 與 Arc 來開發

一樣開啟 Xcode5 建立一個專案

選擇 Empty Application

















建立完成後大該長這個樣
















接著先至 Project 的 Build Settings 將 ARC 的使用改為 no
















再來就至專案下建立熟悉的 ViewController

習慣使用 xib 開發的記得要將 xib 的選項打勾

因為本人不習慣使用 xib 所以就沒勾了
















Creat 後會長這樣
















開始寫 code

AppDelegate.h

#import "MainViewController.h"  //import viewcontroller

@interface AppDelegate : UIResponder<UIApplicationDelegate>

@property (strong, nonatomic) UIWindow *window;

@property (retain, nonatomic) MainViewController *viewcontroller_main;  //define viewcontroller

@end

AppDelegate.m 的部分要注意將 ARC 設為 no 之後就可以加上 autorelease 了

AppDelegate.m

-(void)dealloc{
    
    [_viewcontroller_main release];
    
    [super dealloc];
}

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
    
    self.viewcontroller_main = [[MainViewController alloc]initWithNibName:nil bundle:nil];
    
    [self.window setRootViewController:self.viewcontroller_main];
    
    [self.viewcontroller_main release];
    
    [self.window makeKeyAndVisible];
    
    return YES;

}

MainViewController.m 

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        [self.view setBackgroundColor:[UIColor whiteColor]];
    }
    return self;
}

- (void)viewDidLoad
{
    [super viewDidLoad];
// Do any additional setup after loading the view.
    UIAlertView *alertview = [[UIAlertView alloc]initWithTitle:@"hello world" message:nil delegate:nil cancelButtonTitle:@"ok" otherButtonTitles: nil];
    [alertview show];
    [alertview release];
}

最後模擬器下的結果應該會像這樣




2013年9月17日 星期二

IOS QRcode Generator 二維條碼產生器

提供一個簡單的二維條碼產生器

Development environment

Xcode 4.6.3

iOS-QR-Code-Encoder   Update: Nov 28,2012

https://github.com/moqod/iOS-QR-Code-Encoder 


Start:

建立一個 single view project














將下載下來的檔案案解壓縮後

將需要使用到的檔案拉到專案內自己習慣放 Library 的位置

需要用到的有 libqrencode 資料夾內的所有檔案

跟 Classes 內的 QRCodeGenerator.h 和 QRCodeGenerator.m

拉完後大該會像這樣














拉完後記得將 QRCodeGenerator.m 的 Target Membership 打勾













不然在 Compiler 時會出現錯誤

接著就開始 coding

ViewController.m

    
#import "QRCodeGenerator.h"
    
- (void)viewDidLoad
{
    [super viewDidLoad];
   
    //要轉換為 qrcode 的字串
    NSString *str_qrcode = @"https://www.google.com.tw/";

    //定義與初始畫 uiimageview 用來放產生的 qrcode
    UIImageView *imgview_qrcode = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 320, 320)];
    
    imgview_qrcode.backgroundColor = [UIColor whiteColor];

    //讓 uiimageview 的 image 為 qrcodegenerator 產生的 qrcode image 
    imgview_qrcode.image = [QRCodeGenerator qrImageForString:str_qrcode imageSize:imgview_qrcode.bounds.size.width];
   
    //將 uiimageview 加入主畫面中
    [self.view addSubview:imgview_qrcode];
    
    [imgview_qrcode release];
    
}
   

就這樣

你可以產生出一個內容為 google 網址的 QRcode