среда, 5 октября 2011 г.

Сохранение UIImage в png или jpeg файл

Материал взят из http://iphonedevelopertips.com/data-file-management/save-uiimage-object-as-a-png-or-jpeg-file.html

// Create paths to output images
NSString *pngPath = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/Test.png"];
NSString *jpgPath = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/Test.jpg"];

// Write a UIImage to JPEG with minimum compression (best quality)
// The value 'image' must be a UIImage object
// The value '1.0' represents image compression quality as value from 0.0 to 1.0
[UIImageJPEGRepresentation(image, 1.0) writeToFile:jpgPath atomically:YES];

// Write image to PNG
[UIImagePNGRepresentation(image) writeToFile:pngPath atomically:YES];

// Let's check to see if files were successfully written...

// Create file manager
NSError *error;
NSFileManager *fileMgr = [NSFileManager defaultManager];

// Point to Document directory
NSString *documentsDirectory = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents"];

// Write out the contents of home directory to console
NSLog(@"Documents directory: %@", [fileMgr contentsOfDirectoryAtPath:documentsDirectory error:&error]);

воскресенье, 2 октября 2011 г.

Проверка валидности email

- (BOOL) validateEmail: (NSString *) candidate
{
NSString *emailRegex = @ "[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2, 4} ";
NSPredicate *emailTest = [NSPredicate predicateWithFormat:@ "SELF MATCHES %@ ", emailRegex];
return [emailTest evaluateWithObject:candidate];
}
Код взят из http://stackoverflow.com/questions/800123/best-practices-for -validating-email-address-in-objective-c-on-ios-2-0

воскресенье, 18 сентября 2011 г.

Регулярные выражения для поиска в исходниках Xcode-проекта

[^//][^ ]NSLog - это регулярное выражение для поиска всех незакомментированных NSLog (лично я люблю выводить в лог всяческие значения и прочую лабуду, которая помогает мне понять, что вообще происходит в программе, не всегда это можно сделать только с одними брекпоинтами).

[^a-zA-Z_]id[^a-zA-Z_] - это регулярное выражение для поиска всех id, где справа и слева нет букв и нет знаков подчёркивания (может пригодиться, если вам нужно заменить тысячи локальных переменных или мемберов в тех коллективных исходниках, которые писали те плюсовые программисты, которые не знали или забыли (а у вас не хватает наглости их упрекать за повторяющуюся забывчивость), что в Obj-С id является именем типа (псевдоним типа NSObject*). Внимание! Квадратные скобки дают нам по одному символу слева и справа от id, которые не являются буквами и знаком подчёркивания. То есть поиск нам выдаст в числе прочих и всё 4 буквенные строки, где в центре каждой строки мы имеем id.

Поэтому, если вам нужно заменять в коллективных Си++ исходниках id на _id (ведь id является типом данных в Objective C, а ваши cpp файлы наверняка будут настроены в дереве проекта как cpp.objcpp файлы), то лучше сделайте так:

Вставьте в поле Find:
([^a-zA-Z_])id([^a-zA-Z_])
Вставьте в поле Replace:
\1_id\2

Дело в том, что в квадратных скобках мы имеем по одному символу (который не буква и не знак подчёркивания). Поэтому, при замене (если не использовать круглые скобки и в поле Replace просто написать _id) мы бы заменяли не только id, но и символ справа и символ слева от id, то есть съедались бы точки с запятой и прочие важные символы. \1 и \2 заставляет Xcode кроме _id вставить одиночные символы слева и справа (те, которые были слева и справа от оригинальной id).

четверг, 15 сентября 2011 г.

Невозможно добавить исходник в дерево проекта?

Иногда бывает невозможно добавить существующий исходник в дерево проекта обычным способом (исходник или вообще какой-либо иной файл обозначен серым цветом, как будто бы он уже был добавлен в дерево проекта)

Тогда просто откройте вне проекта рядом папку с исходником (или иным нужным файлом) и перетащите нужный исходник (или файл) в дерево проекта в нужную группу

Удивительно, это работает!

четверг, 25 августа 2011 г.

Много умных мыслей для разработчиков

Я люблю читать на этом сайте различные умные мысли (от Славы Панкратова и Александра Орлова)

http://www.it4business.ru/

А ещё я обожаю читать Джоэла Спольски (прочитал его 2 книги на русском языке, но многое оттуда есть и на этом сайте)

http://russian.joelonsoftware.com/

четверг, 18 августа 2011 г.

Полезные ссылки для iOS-программиста

Вот страницы, на которые я каждый день заглядываю и иногда общаюсь с участниками (если могу помочь советом):

http://www.rsdn.ru/forum/apple.os/
http://touchdev.ru/
http://habrahabr.ru/blogs/macosxdev/

понедельник, 6 июня 2011 г.

Apple официально анонсировала iOS 5.0, Mac OS X 10.7 и сервис iCloud

Компания Apple сегодня открыла ежегодную конференцию WWDC, ориентированную на разработчиков и партнеров компании. По традиции, взятой на вооружение маркетологами Apple, журналистов, ждавших от компании новинок, здесь было едва ли не больше, чем основ... полный текст

Источник: Cybersecurity.ru

Постоянные читатели