среда, 21 августа 2013 г.

Финалистки



Автор: Ricky Java
Язык: русский
Кол-во: 5шт
Разрешение: 1000 × 1000
Скачать: Финалистки.zip

История: Корделия, Джейд и Мара, финалисты конкурса Мисс Обнаженная Аквилонии, готовы, окунуться в священные воды Фонтана Тибора. Омовение - неизменный ритуал, перед заключительным туром и награждением победительниц.

Одна за другой, соперницы разулись и шагнули в воду, с удовольствием погружаясь в ее целебную теплоту. Забыв на короткий миг о конкуренции и перипетиях конкурса, троица, еле-еле уместившись и тесня друг дружку, от души резвиться, плескаясь и нежась, в крошечном бассейне.

воскресенье, 14 июля 2013 г.

Objective-C: NSViewController - простой пример управления слоями или видами (views)

Xcode: Version 4.6.3

Для начала создадим новый проект в xcode, с названием Example. Сразу добавим в него два класса  NSViewController (File - New - File → Objective-C class) с именами:
FirstViewController и SecondViewController каждый с собственными xib-ами, галочка «With XIB for user interfasce» соответственно должна быть поставлена.


В SecondViewController.xib и FirstViewController.xib на  слой (Custom View) добавляем кнопку и текстовое поле, для визуализации. Должно получиться конструкция показанная на скриншоте ниже. В MainMenu.xib две кнопки и новый слой 0, а уже на него текстовое поле.

 

В MainMenu.xib из правой колонки перетащим два контролера типа «ViewController».


Созданные контролеры привяжем к конкретным классам:


После подготовительной работы опишем наши будущие действия. Так по кнопке 1 показываем слой 1 *(скрывая слой 2), по кнопке 2 показываем слой 2 *(скрывая при этом слой 1).

AppDelegate.h

#import <Cocoa/Cocoa.h>
@class FirstViewController;
@class SecondViewController;


@interface AppDelegate : NSObject <NSApplicationDelegate>

@property (assign) IBOutlet NSWindow *window;
@property (weak) IBOutlet NSView *view0;
@property (unsafe_unretained) IBOutlet FirstViewController *firstViewController;
@property (unsafe_unretained) IBOutlet SecondViewController *secondViewController;

- (IBAction)button1:(id)sender;
- (IBAction)button2:(id)sender;

@end

AppDelegate.m

#import "AppDelegate.h"
#import "FirstViewController.h"
#import "SecondViewController.h"

@implementation AppDelegate

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
    // Insert code here to initialize your application
}

- (IBAction)button1:(id)sender {
   
    NSLog(@"Кнопка 1 нажата");   
    [[_secondViewController view]removeFromSuperview];
    [_view0 addSubview:[_firstViewController view]];
    [[_firstViewController view] setFrame:[_view0 bounds]];

}

- (IBAction)button2:(id)sender {
   
    NSLog(@"Кнопка 2 нажата");
    [[_firstViewController view]removeFromSuperview];
    [_view0 addSubview:[_secondViewController view]];
    [[_secondViewController view] setFrame:[_view0 bounds]];

}

@end

Усложним задачу по клику кнопки слоя First скрыть слой First и показать слой Second, а по клику кнопки слоя Second скрыть слой Second и показать слой First. По сути зеркальные действия.

FirstViewController.h

#import <Cocoa/Cocoa.h>
@class SecondViewController;

@interface FirstViewController : NSViewController
@property (weak) IBOutlet NSView *view0;
@property (strong) IBOutlet NSView *firstView;
@property (unsafe_unretained) IBOutlet SecondViewController *secondViewController;

- (IBAction)buttonFirst:(id)sender;

@end

FirstViewController.m

#import "FirstViewController.h"
#import "SecondViewController.h"

@interface FirstViewController ()

@end

@implementation FirstViewController

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Initialization code here.
    }
   
    return self;
}

- (IBAction)buttonFirst:(id)sender {
   
    NSLog(@"Кнопка buttonFirst нажата");
    [_firstView removeFromSuperview];
    [[_secondViewController view] removeFromSuperview];
    [_view0 addSubview:[_secondViewController view]];
    [[_secondViewController view] setFrame:[_view0 bounds]];
   
}

@end

SecondViewController.h

#import <Cocoa/Cocoa.h>
@class FirstViewController;

@interface SecondViewController : NSViewController

@property (weak) IBOutlet NSView *view0;
@property (strong) IBOutlet NSView *secondView;
@property (unsafe_unretained) IBOutlet FirstViewController *firstViewController;


- (IBAction)buttonSecond:(id)sender;

@end

SecondViewController.m

#import "SecondViewController.h"
#import "FirstViewController.h"

@interface SecondViewController ()

@end

@implementation SecondViewController

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Initialization code here.
    }
   
    return self;
}

- (IBAction)buttonSecond:(id)sender {
   
    NSLog(@"Кнопка buttonSecond нажата");
    [_secondView removeFromSuperview];
    [[_firstViewController view] removeFromSuperview];
    [_view0 addSubview:[_firstViewController view]];
    [[_firstViewController view] setFrame:[_view0 bounds]];}

@end

понедельник, 24 июня 2013 г.

Objective-C: Генерация случайного числа

Xcode: Version 4.6.3

Допустим нам надо получить случайное число в каком-то диапазоне положительных чисел, к примеру любое случайное число от 0 до 1, воспользуемся решением ниже:

// Метод генерации случайных чисел от начального положительного значения до конечного положительного значения
// Начальное положительного значение и конечное положительное значение входят в этот диапазон
- (NSUInteger) generate: (unsigned long) initialValue generate: (unsigned long) finalValue {
  
    // Возвращаем генерированное число
    return initialValue + (arc4random() % finalValue);
  

Проверка:

int a = 0, b = 1;

long v = [self generate:a generate: (b - a) + 1];

NSLog(@"Случайное число от %d до %d = %lu", a, b, v);

Objective-C: Женская русская фамилия из мужской

Xcode: Version 4.6.3 

Преобразование женской фамилии из мужской, подразумевает замену окончаний в слове. То есть действуют простые правила, если мужская фамилия заканчивается на -ов, -ев, -ин, -ёв то в конце добавляется -а. Если окончание на -ий, -ый, -ой добавляется -ая. Все остальные фамилии остаются как есть.

Набросаем метод:

// Метод преобразования русской женской фамилии из мужской русской фамилии
// От мужских русских фамилий на -ов, -ев, -ин, -ёв добавляется -а
// От мужских русских фамилий на -ий, -ый, -ой добавляется -ая
// Остальные остаются как есть
- (NSString*) conversionHumanWomanFamilyRu: (NSString*) humanManFamilyRu {
   
    // Забираем от строки(мужской фамилии) два последних символа
  NSString *endTwoCharactersHumanManFamilyRu = [humanManFamilyRu substringFromIndex:([humanManFamilyRu length] - 2)];
   
    //NSLog(@"String:%@, two last character of the string:%@, string length:%lu", humanManFamilyRu, endTwoCharactersHumanManFamilyRu, ([humanManFamilyRu length] - 2));
   
    // Сравниваем окончание
    if ( [endTwoCharactersHumanManFamilyRu isEqual: @"ов"] || [endTwoCharactersHumanManFamilyRu isEqual: @"ев"] || [endTwoCharactersHumanManFamilyRu isEqual: @"ёв"] || [endTwoCharactersHumanManFamilyRu isEqual: @"ин"]) {
          
        humanManFamilyRu = [humanManFamilyRu stringByAppendingString:@"а"];
       
        // NSLog(@"%@",humanManFamilyRu);
       
    } else {
       
        if ([endTwoCharactersHumanManFamilyRu isEqual: @"ий"] || [endTwoCharactersHumanManFamilyRu isEqual: @"ый"] || [endTwoCharactersHumanManFamilyRu isEqual: @"ой"]) {
           
            humanManFamilyRu = [humanManFamilyRu stringByReplacingCharactersInRange: NSMakeRange(([humanManFamilyRu length]-2),2) withString:@"ая" ];
           
            // NSLog(@"%@",humanManFamilyRu);
           
        }
       
    }    
    // Возвращаем женскую фамилию
    return humanManFamilyRu;
}

И наконец производим правильность работы метода:

NSString *humanWomanFamilyRu =[self conversionHumanWomanFamilyRu:@"Ангарский"];

NSLog(@"Русская женская фамилия:%@", humanWomanFamilyRu);

пятница, 7 декабря 2012 г.

Наложницы

Автор: Ricky Java
Язык: русский
Кол-во: 5шт
Разрешение: 1000 × 1000
Скачать: Наложницы.zip

История: Каждое утро, согласно заведенному распорядку, наложницы имперского гарема Лотарингии, ожидая прихода принца, устраивали на балконе смотрины. Бесстыже, козыряя своими аппетитными формами, каждая из одалисок в тайне надеялась, что именно ее, сегодня выберут для монарших утех.
актрисаСержена: У Сержены красивый голос и природный дар к музыке. Она искусная флейтистка, ее конек - неистовая и завораживающая игра на двух флейтах разом. К тому же, она очень любит животных, самые свирепые волкодавы из королевской псарни слушаются ее беспрекословно, а королевский жеребец по кличке Тайфун от нее без ума. До поступления на службу к принцу, слыла известной киноактрисой и востребованной моделью глянцевых журналов.
фанаткаРимма: Римма - первая, по размерам, в гареме. Ей восемнадцать лет, она самая молоденькая и амбициозная из рабынь, прекрасно сложена и эрудированна, и ко всему прочему, зажигательно, исполняет восточные танцы. Очень гибкая, принять любую позу, для нее не составляет большого труда. Решив доказать всем, что она больше, чем просто еще одна кукла со смазливым личиком, старается обслужить принца и его гостей, по высшему классу. Для нее нет табу в постели. В гарем, ее, студентку-первокурсницу педагогического, привело страстное влечение к VIP-Персонам и мировым знаменитостям. Теперь, знакомство с сильными мира сего, не только, ее обожаемое хобби, но и любимая работа, одновременно.
путешественница Урсула: Урсула попала в имперский дворец, еще подростком, но быстро освоилась, и вскоре, благодаря своей природной красоте, двум преогромным женским прелестям, кроткому норову и безотказности, стала одной из лучших и любимых наложниц принца. Очень выносливая и неприхотливая в быту, плюс замечательно варит кофе с молоком, на завтрак. Коммуникабельная, обожает быть в центре внимания, любой, пусть даже сугубо мужской компании. В юности, любила путешествовать автостопом, поэтому, знает много языков, обычаев и правил гостеприимства, неукоснительно соблюдаемых в отношении странствующих, в одиночку, молоденьких девушек. Принц, частенько берет ее с собой на всяческие рауты и длительные поездки, в качестве секретаря по связям с общественностью. Незаменима, в решении проблемы оставляемого залога или оплаты долгов принца в зарубежных вояжах.

четверг, 6 декабря 2012 г.

Сорайя - ненасытная воительница

Сорайя
Автор: Ricky Java
Язык: русский
Кол-во: 5шт
Разрешение: 1000 × 1000
Скачать: Сорайя - ненасытная воительница.zip

История: Сорайя, мысленно перенесясь в далекое прошлое, бродила по заброшенным руинам древнего замка. Обследовав, как следует, местность, она вдруг обнаружила останки древнего трона, сложенного из грубо обработанного камня. Кому он принадлежал? Вопрошает она. Кто, на нем восседал, великий лорд-консорт или же его супруга, воинствующая королева?

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

«Королева варваров не носит длинные вычурные рукава, развивающиеся на ветру,  как паруса кораблей» - размышляла Сорайя. Она обнажает свои сильные и ловкие руки в случае войны, лихо управляясь мечом и щитом для защиты, и носит на руках драгоценности инкрустированные золотом, только в мирное время, после того, как полностью изничтожит всех своих заклятых врагов и заносчивых выскочек, конкуренток на престол.

Сорайя вынуждена признать, что королевы-воительницы прошлого, также, не носили просвечивающие кружевные юбки и красиво волочащиеся по земле шлейфы. Раз так - их, тоже долой.

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

Развалившись на прохладной, каменной скамье, Сорайя, вновь представила себе, античных Королев-победительниц, их былую воинскую доблесть и славу, теперь, увы, утраченную навсегда. Эти отважные женщины-воины не носили кружевные лифы, шляпки или шарфики, им и мужчины были не указ, они приказывали, а не подчинялись тупым и грубым мужланам. Сорайя, тяжело вздохнула. «Но, куда ей, до них?». Себя не обманешь. Ей, нипочем не, заставить себя, расстаться со всей этой гламурной мишурой, ведь в шелковой парче, она так великолепно смотрится. Увы и Ах. К своему стыду, она осознает, что ей суждено стать языческой королевой, лишь в своих девичьих мечтах.

вторник, 4 декабря 2012 г.

Франческа

модница
Автор: Ricky Java
Язык: русский
Кол-во: 5шт
Разрешение: 1000 × 1000
Скачать: Франческа.zip

История: Знакомьтесь, Франческа - умелая белошвейка и завзятая модница, обожает шить и   наряжаться. Недалеко, от родного поместья в Равенне, прогуливается, в платье собственного изготовления, из недавней, летней коллекции. «Искусительница» - так, назвала она свое новое творение.
Выпускница

А это платьице, Франческа нарекла «Скромница». Она немного в замешательстве, какой же из них, ей надеть, на выпускной. «Там, будут гардемарины из королевской академии, у них кстати, тоже выпуск». Наморщив прелестный лобик, красотка на секунду задумалась, -  «Хм... В чем же, пойти?». «Эврика!!» - захлопав в лодоши, воскликнула девушка - «Ну, конечно, как я сразу об этом, не подумала?»

Чуточку креатива, и вуаля, новый наряд готов. Пусть, капельку вызывающее, но зато великолепно смотрится на ней, подчеркивая ее несомненные достоинства, как будущей офицерской жены. «Уже, лучше, девчонки лопнут от зависти. Я назову его «Охотница» - игриво, улыбаясь, прощебетала юная модница.

Позируя, словно на подиуме, в своем любимом наряде «Амазонка», Франческа здраво рассудила, что в таком облачении, понравится парням больше, и наверняка, затмит своих сокурсниц. Теперь, нужно просто выбрать, в каком из трех, отправиться на выпускной бал.

Чуточку, поразмыслив, Франческа определилась с выбором наряда и готова зажигать на балу. Предпочтя, смелый костюм «Амазонки», но со скромными и элегантными, кружевными нарукавниками от «Искусительницы», наша разумная героиня, без сомнения, станет королевой бала...