четверг, 30 августа 2012 г.

Отключаем ARC в некоторых файлах в XCode

ARC (Automatic Reference Count) был реализован в XCode 4.2.  Это означает что вам больше не придется использовать конструкции вида release, autorelease, или retain в вашем коде. Это намного упрощаем жизнь программистам, но в тоже время усложняет при копировании кода , написанного для более ранних версий Xcode. И как раз тут и возникают ошибки типа 'release' is unavailable: not available in automatic reference counting mode или ARC forbids explicit message send of 'release' или  ARC forbids explicit message send of 'autorelease'. Здесь я предлагаю решение данной проблемы.

1. Выберите свой проект в Project Navigator и далее на Target


2. Во вкладке "Build Phases" разверните "Compile Sources"
3. Далее щелкните 2 раза по нужному файлу напишите в открывшемся поле " -fno-objc-arc" без кавычек.

вторник, 28 августа 2012 г.

Пример кода Xcode: объединение строк

NSString *hello = @"hello";
NSString *world = @" world";
NSString *phrase = [hello stringByAppendingString:world];

Примеры кода Xcode: Int to String

int myInt = 10;
NSString *stringWithInteger = [NSString stringWithFormat: @"%d", myInt];

Примеры кода Xcode: простой класс

Приведу пример простого класса автомобиля со свойствами и методом Файл класса "car.h":
//
//  car.h
//  simple
//
//  Created by Nikita Rukavkov on 28.08.12.
//  Copyright (c) 2012 Nikita Rukavkov. All rights reserved.
//
#import <Foundation/Foundation.h>
@interface SimpleCar : NSObject {  
    NSString* make;  
    NSString* model;  
    NSNumber* vin;  
}  
@property(readwrite, retain) NSString* make;  
@property(readwrite, retain) NSString* model;  
@property(readwrite, retain) NSNumber* vin;  
// convenience method  
- (void) setMake: (NSString*)newMake   
        andModel: (NSString*)newModel;  
@end  
Файл класса "car.m"
//
//  car.m
//  simple
//
//  Created by Nikita Rukavkov on 28.08.12.
//  Copyright (c) 2012 Nikita Rukavkov. All rights reserved.
//

#import "car.h" 
  
@implementation SimpleCar  
  
@synthesize make, model, vin;  
  
- (void) setMake: (NSString*)newMake   
        andModel: (NSString*)newModel {  
      
    [self setMake:newMake];  
    [self setModel:newModel];  
  
}  
  
@end  
Пример вызова:
    car *myCar = [[car alloc] init];
    [myCar setMake:vendor andModel:model];
    NSLog(@"The car is: %@ %@", [myCar make], [myCar model]);

Примеры кода Xcode: NSString to Integet

У класса NSString есть замечательный метод, который возвращает значение строки в типе NSNumber. Пример:
NSString *vin_m = [[NSString alloc] init];
vin_m = @"1234567890";
NSNumber *newVin = [NSNumber numberWithInt:[vin_m intValue]];

Примеры кода Xcode: объявляем тип integer (класс NSNumber)

NSNumber *newVin = [NSNumber numberWithInt:123];

Примеры кода Xcode: объявляем строку в Objective C

Пример 1:
NSString *testString;
testString = [[NSString alloc] init]; 
testString = @"Here's a test string in testString!"; 
NSLog(@"testString: %@", testString); 
Пример 2:
NSString* make=[[NSString alloc] initWithString:@"Test string"];

суббота, 11 августа 2012 г.

Клавиша insert в Mac OS X или как выделить файлы в mc

Работая удаленно через ssh с Linux-серваками в файловом менеджере midnight commander(mc) часто возникает необходимость выделить некоторые файлы. Но тут возникает проблема - в беспроводной клаве Apple нет такой клавиши. Чтобы обойти это достаточно использовать комбинацию Ctrl+T.

среда, 1 августа 2012 г.

Изменение пути сохранения скриншотов в Mac OS

По роду своей деятельности, я часто делаю скриншоты с экрана своего iMac. И меня просто бесит что они располагаются автоматом на рабочем столе. Для исправления данной ситуации в Terminal достаточно ввести следующую команду:

defaults write com.apple.screencapture location -string "path/to/location"

Где path/to/location нужно заменить на тот путь, куда будут сохранятся вновь созданные скриншоты.