From ffcdded1388569f957161ded2efccd19435baaf2 Mon Sep 17 00:00:00 2001 From: Artem Abramov Date: Tue, 13 Nov 2012 22:16:09 +0400 Subject: [PATCH 1/3] 5 tasks completed 1. New proj 2. Cell class 3. DNA NSMutableArray 4. init overriden 5. -(int)hammingDistance --- DNA/DNA.xcodeproj/project.pbxproj | 249 ++++++++++++++++++ .../contents.xcworkspacedata | 7 + .../UserInterfaceState.xcuserstate | Bin 0 -> 14520 bytes .../xcdebugger/Breakpoints.xcbkptlist | 5 + .../artem.xcuserdatad/xcschemes/DNA.xcscheme | 86 ++++++ .../xcschemes/xcschememanagement.plist | 22 ++ DNA/DNA/DNA-Prefix.pch | 7 + DNA/DNA/DNA.1 | 79 ++++++ DNA/DNA/DNA.h | 17 ++ DNA/DNA/DNA.m | 56 ++++ DNA/DNA/main.m | 24 ++ 11 files changed, 552 insertions(+) create mode 100644 DNA/DNA.xcodeproj/project.pbxproj create mode 100644 DNA/DNA.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 DNA/DNA.xcodeproj/project.xcworkspace/xcuserdata/artem.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 DNA/DNA.xcodeproj/xcuserdata/artem.xcuserdatad/xcdebugger/Breakpoints.xcbkptlist create mode 100644 DNA/DNA.xcodeproj/xcuserdata/artem.xcuserdatad/xcschemes/DNA.xcscheme create mode 100644 DNA/DNA.xcodeproj/xcuserdata/artem.xcuserdatad/xcschemes/xcschememanagement.plist create mode 100644 DNA/DNA/DNA-Prefix.pch create mode 100644 DNA/DNA/DNA.1 create mode 100644 DNA/DNA/DNA.h create mode 100644 DNA/DNA/DNA.m create mode 100644 DNA/DNA/main.m diff --git a/DNA/DNA.xcodeproj/project.pbxproj b/DNA/DNA.xcodeproj/project.pbxproj new file mode 100644 index 00000000..719ee346 --- /dev/null +++ b/DNA/DNA.xcodeproj/project.pbxproj @@ -0,0 +1,249 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + AC9AF3A41652BCDE00463ED6 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AC9AF3A31652BCDE00463ED6 /* Foundation.framework */; }; + AC9AF3A71652BCDE00463ED6 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = AC9AF3A61652BCDE00463ED6 /* main.m */; }; + AC9AF3AB1652BCDE00463ED6 /* DNA.1 in CopyFiles */ = {isa = PBXBuildFile; fileRef = AC9AF3AA1652BCDE00463ED6 /* DNA.1 */; }; + AC9AF3B31652BD1200463ED6 /* DNA.m in Sources */ = {isa = PBXBuildFile; fileRef = AC9AF3B21652BD1200463ED6 /* DNA.m */; }; +/* End PBXBuildFile section */ + +/* Begin PBXCopyFilesBuildPhase section */ + AC9AF39D1652BCDE00463ED6 /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = /usr/share/man/man1/; + dstSubfolderSpec = 0; + files = ( + AC9AF3AB1652BCDE00463ED6 /* DNA.1 in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 1; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + AC9AF39F1652BCDE00463ED6 /* DNA */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = DNA; sourceTree = BUILT_PRODUCTS_DIR; }; + AC9AF3A31652BCDE00463ED6 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + AC9AF3A61652BCDE00463ED6 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; + AC9AF3A91652BCDE00463ED6 /* DNA-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "DNA-Prefix.pch"; sourceTree = ""; }; + AC9AF3AA1652BCDE00463ED6 /* DNA.1 */ = {isa = PBXFileReference; lastKnownFileType = text.man; path = DNA.1; sourceTree = ""; }; + AC9AF3B11652BD1200463ED6 /* DNA.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DNA.h; sourceTree = ""; }; + AC9AF3B21652BD1200463ED6 /* DNA.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DNA.m; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + AC9AF39C1652BCDE00463ED6 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + AC9AF3A41652BCDE00463ED6 /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + AC9AF3941652BCDE00463ED6 = { + isa = PBXGroup; + children = ( + AC9AF3A51652BCDE00463ED6 /* DNA */, + AC9AF3A21652BCDE00463ED6 /* Frameworks */, + AC9AF3A01652BCDE00463ED6 /* Products */, + ); + sourceTree = ""; + }; + AC9AF3A01652BCDE00463ED6 /* Products */ = { + isa = PBXGroup; + children = ( + AC9AF39F1652BCDE00463ED6 /* DNA */, + ); + name = Products; + sourceTree = ""; + }; + AC9AF3A21652BCDE00463ED6 /* Frameworks */ = { + isa = PBXGroup; + children = ( + AC9AF3A31652BCDE00463ED6 /* Foundation.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + AC9AF3A51652BCDE00463ED6 /* DNA */ = { + isa = PBXGroup; + children = ( + AC9AF3A61652BCDE00463ED6 /* main.m */, + AC9AF3B11652BD1200463ED6 /* DNA.h */, + AC9AF3B21652BD1200463ED6 /* DNA.m */, + AC9AF3AA1652BCDE00463ED6 /* DNA.1 */, + AC9AF3A81652BCDE00463ED6 /* Supporting Files */, + ); + path = DNA; + sourceTree = ""; + }; + AC9AF3A81652BCDE00463ED6 /* Supporting Files */ = { + isa = PBXGroup; + children = ( + AC9AF3A91652BCDE00463ED6 /* DNA-Prefix.pch */, + ); + name = "Supporting Files"; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + AC9AF39E1652BCDE00463ED6 /* DNA */ = { + isa = PBXNativeTarget; + buildConfigurationList = AC9AF3AE1652BCDE00463ED6 /* Build configuration list for PBXNativeTarget "DNA" */; + buildPhases = ( + AC9AF39B1652BCDE00463ED6 /* Sources */, + AC9AF39C1652BCDE00463ED6 /* Frameworks */, + AC9AF39D1652BCDE00463ED6 /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = DNA; + productName = DNA; + productReference = AC9AF39F1652BCDE00463ED6 /* DNA */; + productType = "com.apple.product-type.tool"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + AC9AF3961652BCDE00463ED6 /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 0450; + ORGANIZATIONNAME = "Artem Abramov"; + }; + buildConfigurationList = AC9AF3991652BCDE00463ED6 /* Build configuration list for PBXProject "DNA" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = AC9AF3941652BCDE00463ED6; + productRefGroup = AC9AF3A01652BCDE00463ED6 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + AC9AF39E1652BCDE00463ED6 /* DNA */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXSourcesBuildPhase section */ + AC9AF39B1652BCDE00463ED6 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + AC9AF3A71652BCDE00463ED6 /* main.m in Sources */, + AC9AF3B31652BD1200463ED6 /* DNA.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + AC9AF3AC1652BCDE00463ED6 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.8; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = macosx; + }; + name = Debug; + }; + AC9AF3AD1652BCDE00463ED6 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = YES; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_OBJC_EXCEPTIONS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.8; + SDKROOT = macosx; + }; + name = Release; + }; + AC9AF3AF1652BCDE00463ED6 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "DNA/DNA-Prefix.pch"; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Debug; + }; + AC9AF3B01652BCDE00463ED6 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "DNA/DNA-Prefix.pch"; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + AC9AF3991652BCDE00463ED6 /* Build configuration list for PBXProject "DNA" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + AC9AF3AC1652BCDE00463ED6 /* Debug */, + AC9AF3AD1652BCDE00463ED6 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + AC9AF3AE1652BCDE00463ED6 /* Build configuration list for PBXNativeTarget "DNA" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + AC9AF3AF1652BCDE00463ED6 /* Debug */, + AC9AF3B01652BCDE00463ED6 /* Release */, + ); + defaultConfigurationIsVisible = 0; + }; +/* End XCConfigurationList section */ + }; + rootObject = AC9AF3961652BCDE00463ED6 /* Project object */; +} diff --git a/DNA/DNA.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/DNA/DNA.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 00000000..f6feef27 --- /dev/null +++ b/DNA/DNA.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/DNA/DNA.xcodeproj/project.xcworkspace/xcuserdata/artem.xcuserdatad/UserInterfaceState.xcuserstate b/DNA/DNA.xcodeproj/project.xcworkspace/xcuserdata/artem.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..3c7b1069e1acb278d461c5c4baf5661d432a9172 GIT binary patch literal 14520 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 X_oZLw@3jyi;%`Z`_&e}_`uzU`c|f+Q literal 0 HcmV?d00001 diff --git a/DNA/DNA.xcodeproj/xcuserdata/artem.xcuserdatad/xcdebugger/Breakpoints.xcbkptlist b/DNA/DNA.xcodeproj/xcuserdata/artem.xcuserdatad/xcdebugger/Breakpoints.xcbkptlist new file mode 100644 index 00000000..05301bc2 --- /dev/null +++ b/DNA/DNA.xcodeproj/xcuserdata/artem.xcuserdatad/xcdebugger/Breakpoints.xcbkptlist @@ -0,0 +1,5 @@ + + + diff --git a/DNA/DNA.xcodeproj/xcuserdata/artem.xcuserdatad/xcschemes/DNA.xcscheme b/DNA/DNA.xcodeproj/xcuserdata/artem.xcuserdatad/xcschemes/DNA.xcscheme new file mode 100644 index 00000000..bdc47465 --- /dev/null +++ b/DNA/DNA.xcodeproj/xcuserdata/artem.xcuserdatad/xcschemes/DNA.xcscheme @@ -0,0 +1,86 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/DNA/DNA.xcodeproj/xcuserdata/artem.xcuserdatad/xcschemes/xcschememanagement.plist b/DNA/DNA.xcodeproj/xcuserdata/artem.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 00000000..703801e0 --- /dev/null +++ b/DNA/DNA.xcodeproj/xcuserdata/artem.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,22 @@ + + + + + SchemeUserState + + DNA.xcscheme + + orderHint + 0 + + + SuppressBuildableAutocreation + + AC9AF39E1652BCDE00463ED6 + + primary + + + + + diff --git a/DNA/DNA/DNA-Prefix.pch b/DNA/DNA/DNA-Prefix.pch new file mode 100644 index 00000000..cd50d540 --- /dev/null +++ b/DNA/DNA/DNA-Prefix.pch @@ -0,0 +1,7 @@ +// +// Prefix header for all source files of the 'DNA' target in the 'DNA' project +// + +#ifdef __OBJC__ + #import +#endif diff --git a/DNA/DNA/DNA.1 b/DNA/DNA/DNA.1 new file mode 100644 index 00000000..a0b19506 --- /dev/null +++ b/DNA/DNA/DNA.1 @@ -0,0 +1,79 @@ +.\"Modified from man(1) of FreeBSD, the NetBSD mdoc.template, and mdoc.samples. +.\"See Also: +.\"man mdoc.samples for a complete listing of options +.\"man mdoc for the short list of editing options +.\"/usr/share/misc/mdoc.template +.Dd 11/13/12 \" DATE +.Dt DNA 1 \" Program name and manual section number +.Os Darwin +.Sh NAME \" Section Header - required - don't modify +.Nm DNA, +.\" The following lines are read in generating the apropos(man -k) database. Use only key +.\" words here as the database is built based on the words here and in the .ND line. +.Nm Other_name_for_same_program(), +.Nm Yet another name for the same program. +.\" Use .Nm macro to designate other names for the documented program. +.Nd This line parsed for whatis database. +.Sh SYNOPSIS \" Section Header - required - don't modify +.Nm +.Op Fl abcd \" [-abcd] +.Op Fl a Ar path \" [-a path] +.Op Ar file \" [file] +.Op Ar \" [file ...] +.Ar arg0 \" Underlined argument - use .Ar anywhere to underline +arg2 ... \" Arguments +.Sh DESCRIPTION \" Section Header - required - don't modify +Use the .Nm macro to refer to your program throughout the man page like such: +.Nm +Underlining is accomplished with the .Ar macro like this: +.Ar underlined text . +.Pp \" Inserts a space +A list of items with descriptions: +.Bl -tag -width -indent \" Begins a tagged list +.It item a \" Each item preceded by .It macro +Description of item a +.It item b +Description of item b +.El \" Ends the list +.Pp +A list of flags and their descriptions: +.Bl -tag -width -indent \" Differs from above in tag removed +.It Fl a \"-a flag as a list item +Description of -a flag +.It Fl b +Description of -b flag +.El \" Ends the list +.Pp +.\" .Sh ENVIRONMENT \" May not be needed +.\" .Bl -tag -width "ENV_VAR_1" -indent \" ENV_VAR_1 is width of the string ENV_VAR_1 +.\" .It Ev ENV_VAR_1 +.\" Description of ENV_VAR_1 +.\" .It Ev ENV_VAR_2 +.\" Description of ENV_VAR_2 +.\" .El +.Sh FILES \" File used or created by the topic of the man page +.Bl -tag -width "/Users/joeuser/Library/really_long_file_name" -compact +.It Pa /usr/share/file_name +FILE_1 description +.It Pa /Users/joeuser/Library/really_long_file_name +FILE_2 description +.El \" Ends the list +.\" .Sh DIAGNOSTICS \" May not be needed +.\" .Bl -diag +.\" .It Diagnostic Tag +.\" Diagnostic informtion here. +.\" .It Diagnostic Tag +.\" Diagnostic informtion here. +.\" .El +.Sh SEE ALSO +.\" List links in ascending order by section, alphabetically within a section. +.\" Please do not reference files that do not exist without filing a bug report +.Xr a 1 , +.Xr b 1 , +.Xr c 1 , +.Xr a 2 , +.Xr b 2 , +.Xr a 3 , +.Xr b 3 +.\" .Sh BUGS \" Document known, unremedied bugs +.\" .Sh HISTORY \" Document history if command behaves in a unique manner \ No newline at end of file diff --git a/DNA/DNA/DNA.h b/DNA/DNA/DNA.h new file mode 100644 index 00000000..ba56439c --- /dev/null +++ b/DNA/DNA/DNA.h @@ -0,0 +1,17 @@ +// +// DNA.h +// DNA +// +// Created by Artem Abramov on 11/13/12. +// Copyright (c) 2012 Artem Abramov. All rights reserved. +// + +#import + +@interface DNA : NSObject + +@property NSMutableArray * molecules; + +-(int)hammingDistance: (DNA *) compareDNA; + +@end diff --git a/DNA/DNA/DNA.m b/DNA/DNA/DNA.m new file mode 100644 index 00000000..135dd13c --- /dev/null +++ b/DNA/DNA/DNA.m @@ -0,0 +1,56 @@ +// +// DNA.m +// DNA +// +// Created by Artem Abramov on 11/13/12. +// Copyright (c) 2012 Artem Abramov. All rights reserved. +// + +#import "DNA.h" + +@implementation DNA + +@synthesize molecules; + +-(id)init +{ + NSArray * types = [NSArray arrayWithObjects:@"A", @"T", @"G", @"C", nil]; + + self = [super init]; + + if (self) { + for (int i = 0; i < molecules.count; ++i) + { + NSString *rndType = [types objectAtIndex:(rand() % types.count)]; + [molecules insertObject:rndType atIndex:i]; + } + } + + return self; +} + +-(int)hammingDistance: (DNA *) compareDNA +{ + NSUInteger result = 0, length; + + if (compareDNA.molecules.count == 0) { + return -1; /* Op-pa, C-style. How to treat errors in obj-c? */ + } + + if (self.molecules.count > compareDNA.molecules.count) { + length = compareDNA.molecules.count; + } + else { + length = self.molecules.count; + } + + for (NSUInteger i = 0; i < length; i++) { + if (![[compareDNA.molecules objectAtIndex:i] compare:[self.molecules objectAtIndex:i]]) { + result++; + } + } + + return (int)result; +} + +@end diff --git a/DNA/DNA/main.m b/DNA/DNA/main.m new file mode 100644 index 00000000..9acbbd40 --- /dev/null +++ b/DNA/DNA/main.m @@ -0,0 +1,24 @@ +// +// main.m +// DNA +// +// Created by Artem Abramov on 11/13/12. +// Copyright (c) 2012 Artem Abramov. All rights reserved. +// + +#import + +#import "DNA.h" + +int main(int argc, const char * argv[]) +{ + + @autoreleasepool { + + // insert code here... + NSLog(@"Hello, World!"); + + } + return 0; +} + From a7890408a4a7e4d5cf2b54db0a85240644df90ca Mon Sep 17 00:00:00 2001 From: Artem Abramov Date: Tue, 13 Nov 2012 22:41:33 +0400 Subject: [PATCH 2/3] Fixed bug with uninitialized moleculas array. --- .../UserInterfaceState.xcuserstate | Bin 14520 -> 13801 bytes DNA/DNA/DNA.h | 2 +- DNA/DNA/DNA.m | 15 ++++++++++++--- DNA/DNA/main.m | 6 ++++-- 4 files changed, 17 insertions(+), 6 deletions(-) diff --git a/DNA/DNA.xcodeproj/project.xcworkspace/xcuserdata/artem.xcuserdatad/UserInterfaceState.xcuserstate b/DNA/DNA.xcodeproj/project.xcworkspace/xcuserdata/artem.xcuserdatad/UserInterfaceState.xcuserstate index 3c7b1069e1acb278d461c5c4baf5661d432a9172..4f96c48d23c7618a66561b69343b757bb376b781 100644 GIT binary patch delta 7190 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 diff --git a/DNA/DNA/DNA.h b/DNA/DNA/DNA.h index ba56439c..98306a11 100644 --- a/DNA/DNA/DNA.h +++ b/DNA/DNA/DNA.h @@ -10,7 +10,7 @@ @interface DNA : NSObject -@property NSMutableArray * molecules; +@property (nonatomic, strong) NSMutableArray * molecules; -(int)hammingDistance: (DNA *) compareDNA; diff --git a/DNA/DNA/DNA.m b/DNA/DNA/DNA.m index 135dd13c..a8d773bd 100644 --- a/DNA/DNA/DNA.m +++ b/DNA/DNA/DNA.m @@ -10,7 +10,14 @@ @implementation DNA -@synthesize molecules; +@synthesize molecules = _molecules; + + +-(NSMutableArray *)molecules { + if (!_molecules) + _molecules = [[NSMutableArray alloc] init]; + return _molecules; +} -(id)init { @@ -19,10 +26,12 @@ -(id)init self = [super init]; if (self) { - for (int i = 0; i < molecules.count; ++i) + //[[_molecules alloc] init]; + for (int i = 0; i < 100; ++i) { NSString *rndType = [types objectAtIndex:(rand() % types.count)]; - [molecules insertObject:rndType atIndex:i]; + [self.molecules addObject:rndType]; + NSLog(@"Inserted a string %@ at index %i", rndType, i); } } diff --git a/DNA/DNA/main.m b/DNA/DNA/main.m index 9acbbd40..19c11fce 100644 --- a/DNA/DNA/main.m +++ b/DNA/DNA/main.m @@ -15,8 +15,10 @@ int main(int argc, const char * argv[]) @autoreleasepool { - // insert code here... - NSLog(@"Hello, World!"); + DNA * firstCell = [[DNA alloc]init]; + DNA * secondCell = [[DNA alloc]init]; + + NSLog(@"%i", [firstCell hammingDistance:secondCell]); } return 0; From 371e41669f22331e73aef709026732c761e2e915 Mon Sep 17 00:00:00 2001 From: Artem Abramov Date: Tue, 13 Nov 2012 23:33:14 +0400 Subject: [PATCH 3/3] Minor change --- .../UserInterfaceState.xcuserstate | Bin 13801 -> 21270 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/DNA/DNA.xcodeproj/project.xcworkspace/xcuserdata/artem.xcuserdatad/UserInterfaceState.xcuserstate b/DNA/DNA.xcodeproj/project.xcworkspace/xcuserdata/artem.xcuserdatad/UserInterfaceState.xcuserstate index 4f96c48d23c7618a66561b69343b757bb376b781..7277a0505743212ef5a1ad6f4a14854b539b86b2 100644 GIT binary patch literal 21270 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 delta 8547 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