Advertise Mobile SDKs Books Events Forum News Social Networking Support Us
Follow @iphonedevsdk on Twitter

Interface 2, Advanced iOS
Mockup & Code Gen
($9.99)

Make your own iPhone apps
and run them live!
(free)

Pic Frame Dynamo: Photo Editing
($0.99)

Abiliator
($1.99)

Want your application or service advertised on iPhone Dev SDK?

Go Back   iPhone Dev SDK Forum > iPhone SDK Development Forums > iPhone SDK Development

Reply
 
LinkBack Thread Tools Display Modes
Old 07-13-2011, 08:11 AM   #1 (permalink)
Registered Member
 
roberthuttinger's Avatar
 
Join Date: Sep 2008
Posts: 96
roberthuttinger is on a distinguished road
Default Iterate over core-data passed to a view

I am passing data to the view using this method:

` nextViewController = [[AfricanSwallowViewController alloc] initWithNibName:@"AfricanSwallowView" bundle:nil];`

` ((InstructionsViewController *)nextViewController).byTheHusk = byTheHusk;`

I am trying to iterate over the values on the view that byTheHusk gets passed to.

I have tried several versions of `NSLog(@"%@", byTheHusk.name);` and using `objectAtIndexPath` etc. with no luck

Is there a way to access the the objects entries attributes in a `while` or `for` loop style structure?

The closest I can get is:

`NSManagedObject *managedObject = [self.fetchedResultsController objectAtIndexPath:0];`
`NSLog(@"%@",[[managedObject valueForKey:@"name"] description]);`

which results in:

`ByTheHusk[7880:207] (null)`

Which means there are 207 entries. Is that right? and that ByTheHusk is getting passed correctly?

I am a noob to this all so thanks for any help!!!

Bo
roberthuttinger is offline   Reply With Quote
Old 07-13-2011, 08:32 AM   #2 (permalink)
Registered Member
 
Join Date: Nov 2010
Posts: 1,106
Meredi86 is on a distinguished road
Default

So you want to pull out the data that is in your core data on a view?

first how is your data stores? Entity name? Attribute lists etc (dont need it all but i am struggling to decipher from your post)

Second, how are you passing your data to the next view? By this i mean how is "byTheHusk" defined in both locations? (also here i would advise not naming them the same as it will cause confusion when reviewing the code in a few months)

Third, how are you wanting to display the data?

A quick run over of how to get it done. This is based on being in a tableview on view 1.

So in view 2 you need a property, this property needs to belong to the Entity you are accessing - you should have classes in your project that are "NSManagedObject"'s (i.e. i have "StoreCustomers" as an entity, i also have a class created from that entity called "StoreCustomers".

so now in view 2 i have a property: "StoreCustomers *storeCustomers". If i go back to view 1 we now need to pass some data to that property. So in the didSelectRowForIndex we create our instance of the new viewcontroller (exactly like you did) but different from your implementation we just need to say that:
Code:
ViewTwo *viewTwo = [[viewtwo alloc] init...];
Entity *theEntity = (Entity *) the selected row;
viewTwo.storeCustomers = theEntity //the property from view 2 = the selected row from view 1
Now what we are doing here (this may not be 100% accurate but along these lines) is saying that the property in view 2 is the row form our core data that we have been looking at - we are passing the managedObject of that particular entry into core data to the next view.

So now if you nslogged the property in view 2 you would find that there is a nice list containing all the information that you want (or a reference to the row that you are looking for). And all we have left is the need to pull out all the little bits of data that we need.

So in view 2 we need a way of telling the log or the cellForRowAtIndex or the label to be the specific item of data for that row in core data.

Now if you remember our property in view 2 is actually created from a class that holds all of the attributes for that entity - and those are all properties that we can access from other classes. that is done like this:
Code:
UIElement = property.attributeProperty
so in my case of the customers example:
Code:
cell.detailTextLabel.text = storeCustomer.cuName
And that will then populate that cell with the name of the customer - and can be repeated in each cell for the other attributes i.e. phone number etc.

Does this help?
Meredi86 is offline   Reply With Quote
Old 07-13-2011, 08:50 AM   #3 (permalink)
Registered Member
 
roberthuttinger's Avatar
 
Join Date: Sep 2008
Posts: 96
roberthuttinger is on a distinguished road
Default

Quote:
Originally Posted by Meredi86 View Post
first how is your data stores? Entity name? Attribute lists etc (dont need it all but i am struggling to decipher from your post)
in the main view i have the fetchrequest:
Code:
- (NSFetchedResultsController *)fetchedResultsController {
    // Set up the fetched results controller if needed.
    if (fetchedResultsController == nil) {
        // Create the fetch request for the entity.
        NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
        // Edit the entity name as appropriate.
        NSEntityDescription *entity = [NSEntityDescription entityForName:@"ByTheHusk" inManagedObjectContext:managedObjectContext];
        [fetchRequest setEntity:entity];
        
        // Edit the sort key as appropriate.
        NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"state" ascending:YES];// was name
		
		//NSLog(@"NSInteger value :%@", sortDescriptor);
		NSSortDescriptor *sortDescriptor2 = [[NSSortDescriptor alloc] initWithKey:@"name" ascending:YES];
        NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor,sortDescriptor2, nil];// was 2
        
        [fetchRequest setSortDescriptors:sortDescriptors];
        
        // Edit the section name key path and cache name if appropriate.
        // nil for section name key path means "no sections".
		NSFetchedResultsController *aFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:managedObjectContext sectionNameKeyPath:@"state" cacheName:@"Root"];//@"state"
		aFetchedResultsController.delegate = self;
		self.fetchedResultsController = aFetchedResultsController;
			
        [aFetchedResultsController release];
        [fetchRequest release];
        [sortDescriptor release];
        [sortDescriptor2 release];
        [sortDescriptors release];
    }
	
    //?NSLog(@"NSInteger value :%i", numberOfRows);
	return fetchedResultsController;
}
Quote:
how are you passing your data to the next view?
Code:
 nextViewController = [[AfricanSwallowViewController alloc] initWithNibName:@"AfricanSwallowView" bundle:nil];

 ((InstructionsViewController *)nextViewController).byTheHusk = byTheHusk;
Quote:
By this i mean how is "byTheHusk" defined in both locations?
if i understand the question, there are definition files called ByTheHusk.h/m and all the files required are bing imported in the .m controllers

Quote:
Third, how are you wanting to display the data?
Display only in labels or textfields I do not need to delete or update.


Quote:
Does this help?
I just responded, but I will look at what you posted, I wanted to get back asap with the info u requested!

bo

Last edited by roberthuttinger; 07-13-2011 at 09:01 AM.
roberthuttinger is offline   Reply With Quote
Old 07-13-2011, 09:19 AM   #4 (permalink)
Registered Member
 
Join Date: Nov 2010
Posts: 1,106
Meredi86 is on a distinguished road
Default

No worries, take your time looking it over, better to understand fully

Quote:
Quote:
By this i mean how is "byTheHusk" defined in both locations?
if i understand the question, there are definition files called ByTheHusk.h/m and all the files required are bing imported in the .m controllers
What i meant here was what is the object "byTheHusk". In the .h is it like this:
Code:
ByTheHusk *byTheHusk.....
or
NSArray *byTheHusk
From the sounds of it you have it right with ByTheHusk, that from your fetch looks like the Entity that you are accessing the top of that .h file should be like this:
Code:
@interface StoreAllCustomers : NSManagedObject {
@private
}
@property (nonatomic, retain) NSString * xCuAddress2;
Where "StoreAllCustomers" is the Entity
NSManagedObject is the class type
@property.... is the attribute from the entity (obviously there are more of these - 1 per attribute but i couldnt be bothered to copy them all :P)

That Class is possibly the most important in what you are trying to do as it is what sets up the interface for the store. It contains all the getters and setters to pull out the data from the store and allow you to use it.
Meredi86 is offline   Reply With Quote
Old 07-13-2011, 09:27 AM   #5 (permalink)
Registered Member
 
roberthuttinger's Avatar
 
Join Date: Sep 2008
Posts: 96
roberthuttinger is on a distinguished road
Default

this is the one I use:
Code:
ByTheHusk *byTheHusk.....
Quote:
Originally Posted by Meredi86 View Post
Code:
@interface StoreAllCustomers : NSManagedObject {
@private
}
@property (nonatomic, retain) NSString * xCuAddress2;
Am I right in that the entire data blob is being passed, and if so I still need a control structure in a
Code:
for
or
Code:
while
again sorry I havent really gone over your code response yet (which you likely told me how to iterate), I want to make sure that the initial answer you gave me reflects the information I am providing. I will look at it now!!!

thanks so much, this has me stumped

bo
roberthuttinger is offline   Reply With Quote
Old 07-13-2011, 09:39 AM   #6 (permalink)
Registered Member
 
Join Date: Nov 2010
Posts: 1,106
Meredi86 is on a distinguished road
Default

OK so simply put - forget the idea of iterating over it, forget for/while loops. None of those are needed to access ONE row of your core data. Once you have the object reference in your property then you just need to access the values on that.

f you had the data in an array at this point then you would need to iterate it, but you dont, you have the data stored to a property that can access it all with simple . notation:

property.attributeName

so

byTheHusk.huskAge (dont know your attributes :P)
Meredi86 is offline   Reply With Quote
Old 07-13-2011, 09:42 AM   #7 (permalink)
Registered Member
 
Join Date: Nov 2010
Posts: 1,106
Meredi86 is on a distinguished road
Default

This is what an NSLog on view 2 of the passed data should look like:
Code:
tored customer = <NSManagedObject: 0x6d3a250> (entity: StoreAllCustomers; id: 0x6d37680 <x-coredata://32402F51-A312-4065-9FE0-251D70DA83B0/StoreAllCustomers/p1> ; data: {
    account = nil;
    invoices = "<relationship fault: 0x1092f9f0 'invoices'>";
    ipCuId = 0;
    status = 2;
    xCuAddress1 = "";
    xCuAddress2 = nil;
    xCuAddress3 = nil;
    xCuContactName = Meredith;
    xCuCountry = nil;
    xCuCounty = nil;
    xCuEmail = Joe;
    xCuFax = Joe;
    xCuName = Joe;
    xCuNcId = nil;
    xCuPostcode = nil;
    xCuRef = nil;
    xCuRegNum = nil;
    xCuTel = Meredith;
    xCuTotInvoiced = 0;
    xCuTotOutstanding = 0;
    xCuTown = nil;
    xCuVatNum = nil;
    xCuVtId = nil;
    xCuWebsite = Meredith;
    xImCuId = 2287;
})
(i couldnt be bothered (again i know :P) to fill in all the fields but you get the idea)
Meredi86 is offline   Reply With Quote
Old 07-13-2011, 02:46 PM   #8 (permalink)
Registered Member
 
roberthuttinger's Avatar
 
Join Date: Sep 2008
Posts: 96
roberthuttinger is on a distinguished road
Default

Quote:
Originally Posted by Meredi86 View Post

(i couldnt be bothered (again i know :P) to fill in all the fields but you get the idea)
I should be able to do a
Code:
NSLog(@"%@", byTheHusk.name);
but what is passed is the entire data set. so excuse my lack of knowledge here, what I would need to be able to do is:

Code:
NSLog(@"%@", byTheHusk.entryAtIndex:0.name);
or soemthing to that effect.

all the entries are being passed, which is what I want, but in the viewcontroller, I want to display a list of all the names (not in a table view)


Does that make sense?

Code:
bo
roberthuttinger is offline   Reply With Quote
Old 07-13-2011, 03:36 PM   #9 (permalink)
Registered Member
 
Join Date: Oct 2010
Location: Atlanta, GA
Posts: 148
tripp13 is on a distinguished road
Default

Quote:
Originally Posted by roberthuttinger View Post
I should be able to do a
Code:
NSLog(@"%@", byTheHusk.name);
but what is passed is the entire data set. so excuse my lack of knowledge here, what I would need to be able to do is:

Code:
NSLog(@"%@", byTheHusk.entryAtIndex:0.name);
or soemthing to that effect.

all the entries are being passed, which is what I want, but in the viewcontroller, I want to display a list of all the names (not in a table view)


Does that make sense?

Code:
bo

So you want to pass all the names of your Entity to a viewController that does not use a tableView, correct? For the row you select, that row contains something that can equate to a list that contains many names, correct? for example:

This example would have Two Entities
RootView with TableView
Friends of Mine
Enemies of Mine
People I know

Touching on one of the above lists presents a new view (lets say Friends).
DetailView without a TableView
Wayne
Steve
Jarrod
etc...

Is this what you want, or is your RootView setup where it contains ONE list with all names?

This would have One Entity
Wayne
Steve
Jarrod
etc...

You touch a name and on the next view you see that name.

Let us know what type of model you have and we can help get you to the result faster.
tripp13 is offline   Reply With Quote
Old 07-13-2011, 03:58 PM   #10 (permalink)
Registered Member
 
roberthuttinger's Avatar
 
Join Date: Sep 2008
Posts: 96
roberthuttinger is on a distinguished road
Default

When I push the controller I pass the data object.

Code:
nextViewController = [[AfricanSwallowViewController alloc] initWithNibName:@"AfricanSwallowView" bundle:nil];

((InstructionsViewController *)nextViewController).byTheHusk = byTheHusk;
I want to parse the data in teh new viewcontroller

it is not in a table view or in a view where an index is passed or a single object.

bo
roberthuttinger is offline   Reply With Quote
Old 07-13-2011, 04:46 PM   #11 (permalink)
Registered Member
 
Join Date: Oct 2010
Location: Atlanta, GA
Posts: 148
tripp13 is on a distinguished road
Default

Quote:
Originally Posted by roberthuttinger View Post
When I push the controller I pass the data object.

Code:
nextViewController = [[AfricanSwallowViewController alloc] initWithNibName:@"AfricanSwallowView" bundle:nil];

((InstructionsViewController *)nextViewController).byTheHusk = byTheHusk;
I want to parse the data in teh new viewcontroller

it is not in a table view or in a view where an index is passed or a single object.

bo
You are initializing nextViewController (I'm assuming this is a property you have defined in your .h file) with the xib file AfrianSwallowView. You are then using a NEW viewController (InstructionsViewController) to define nextViewController (I'm not sure why you're using parentheses around ((InstructionsViewController *)nextViewController) this part either).

However, you have already alloc init nextViewController in the line above and are then taking nextViewController and saying InstructionsViewController * has an IV named nextViewController.

What are you trying to do with the code you supplied? Are you wanting to load nextViewController, then you want to have a new viewController named InstructionsViewController display your managedObject?
tripp13 is offline   Reply With Quote
Old 07-13-2011, 10:15 PM   #12 (permalink)
Registered Member
 
roberthuttinger's Avatar
 
Join Date: Sep 2008
Posts: 96
roberthuttinger is on a distinguished road
Default

in php terms (its what i am familiar with), in the view i am passing 'byTheHusk' to, I want to then do this:
Code:
foreach ($key as $item) {
    echo "Name: ".$item['name'];// this would be a UILabel in xcode
}
I need to access all the data in the new view but not edit or delete, just iterate through and display.

I want to pass the 'byTheHusk' complete data object to the new view for parsing, but I dont know how to parse it. I have gotten to the point (I think) where the data blob is passed, I (think) I just need to equivalent to the for loop structure to set variables or I can even do it manually

Code:
textField0 = objectAtIndex:0;
textField1 = objectAtIndex:1;
etc
but since what is passed is the whole blob, my feeling is i need something equivalent to:
Code:
textFieldA1 = byTheHusk.objectAtIndex0.name
textFieldA2 = byTheHusk.objectAtIndex0.typeofswallow
textFieldB1 = byTheHusk.objectAtIndex1.name
textFieldB2 = byTheHusk.objectAtIndex1.typeofswallow
I have a feeling this is so simple and I lack the basic knowledge to do this simple thing

bo

Last edited by roberthuttinger; 07-13-2011 at 10:23 PM.
roberthuttinger is offline   Reply With Quote
Old 07-13-2011, 10:34 PM   #13 (permalink)
Registered Member
 
roberthuttinger's Avatar
 
Join Date: Sep 2008
Posts: 96
roberthuttinger is on a distinguished road
Default

Quote:
Originally Posted by Meredi86 View Post
0x6d3a250, 0x1092f9f0
Where are the HEX values coming from?
roberthuttinger is offline   Reply With Quote
Old 07-14-2011, 03:32 AM   #14 (permalink)
Registered Member
 
Join Date: Nov 2010
Posts: 1,106
Meredi86 is on a distinguished road
Default

those are the memory pointers, just telling me the address of what i am messing with - nothing to worry about in terms of what we are trying to get going here.

Ok so Tripp13 had the right idea, could you tell us which of the two data models that he posted best represent what you have?

So are you saying that you are passing your entire Core Data store for that entity to the next view? If that is the case then honestly i would change tack and do a new fetch in the new view - then use the array to populate your UIElements.

So my CustomersView must display the names of each customer from one entity in one table view. It could also display any other data, but i have a tableview and only want the name - if i wanted with a simple change i could turn it into labels and have them display any of the data from that customer at a given index. So once you have the fetch set up and all of that data in an array it is a fairly simple set of code. This is done because a managed object (as far as i know) wont respond to "objectAtIndex" whereas an array will.

To do this you must set up an instance from the moc (managedObjectContext) ad assign it an index path from the array something like this:
Code:
ByTheHusk *aHusk = [theHuskArray objectAtIndex:indexPath.row];
	[cell.textLabel setText:aHusk.name];
Now my theory is that once you are on view 2 - where you think you have the data set you should be able to set it into an array - the same as you would at the bottom of a fetch request:
Code:
[self setStoreHuskArray: mutableFetchResults];
Remember that in the above example the array would be this:
Code:
@property (nonatomic, retain) NSMutableArray *storeHuskArray;
The getters and setters provided are what changes it to setStoreHuskArray

Hope that helps.
Meredi86 is offline   Reply With Quote
Old 07-15-2011, 08:00 AM   #15 (permalink)
Registered Member
 
roberthuttinger's Avatar
 
Join Date: Sep 2008
Posts: 96
roberthuttinger is on a distinguished road
Default

Quote:
Originally Posted by tripp13 View Post
So you want to pass all the names of your Entity to a viewController that does not use a tableView, correct? For the row you select, that row contains something that can equate to a list that contains many names, correct?
what I am trying to do specifically, is pass the core data to a map view, so I can use the fields latitude and longitude to load the map points.

Which I am hard coding now:
Code:
	CLLocationCoordinate2D theCoordinate1;
	theCoordinate1.latitude = 49.204167;
	theCoordinate1.longitude = -119.888500;	MyAnnotation*  	

	myAnnotation1=[[MyAnnotation alloc] init];
	myAnnotation1.coordinate=theCoordinate1;
	myAnnotation1.title=@"1";
	myAnnotation1.subtitle=@"1";
	
	[mapView addAnnotation:myAnnotation1];
	
	[annotations addObject:myAnnotation1];
I want top pass the values to this map view so I can place all the pins
roberthuttinger is offline   Reply With Quote
Old 07-15-2011, 11:58 AM   #16 (permalink)
Registered Member
 
Join Date: Oct 2010
Location: Atlanta, GA
Posts: 148
tripp13 is on a distinguished road
Default

Quote:
Originally Posted by roberthuttinger View Post
what I am trying to do specifically, is pass the core data to a map view, so I can use the fields latitude and longitude to load the map points.

Which I am hard coding now:
Code:
	CLLocationCoordinate2D theCoordinate1;
	theCoordinate1.latitude = 49.204167;
	theCoordinate1.longitude = -119.888500;	MyAnnotation*  	

	myAnnotation1=[[MyAnnotation alloc] init];
	myAnnotation1.coordinate=theCoordinate1;
	myAnnotation1.title=@"1";
	myAnnotation1.subtitle=@"1";
	
	[mapView addAnnotation:myAnnotation1];
	
	[annotations addObject:myAnnotation1];
I want top pass the values to this map view so I can place all the pins
I'm at work right now and can't fully go through this right now, but I'll be home around 5 PM (1700) today Eastern timezone of the United States, about 4 hours from now.

A quick run through would be this:

-You have ViewController1 *vc1 and you want to push data from vc1 to ViewController2 *vc2.

-In vc1, you want to alloc init vc1 from the method you want the action to occur, i.e. didSelectRowAtIndexPath, (IBAction)buttonTouchid)sender, etc.

-You do the above like so (I'm just going to use an IBAction since I don't have the didSelectRow method line memorized. Either way, it's essentially the same):
Code:
- (IBAction)buttonTouch:(id)sender
{
     // Make sure vc2 is imported into the .m file here
     ViewController2 *vc2Pushed = [[ViewController2 alloc] init];
     // With the init portion, you have a variety of options...choose what you want

     [self.navigationController pushViewController:vc2Pushed animated:YES];
}
-Get this down first. Make sure you are pushing the viewController you want and that it is actually pushing the viewController. Also, make sure your viewControllers do have a navigationController.

- I'll get back in a few hours to add a bit more. Try this first and see if you are actually pushing the viewController.
tripp13 is offline   Reply With Quote
Old 07-15-2011, 09:39 PM   #17 (permalink)
Registered Member
 
roberthuttinger's Avatar
 
Join Date: Sep 2008
Posts: 96
roberthuttinger is on a distinguished road
Talking

Quote:
Originally Posted by Meredi86 View Post
Code:
tored customer = <NSManagedObject: 0x6d3a250> (entity: StoreAllCustomers; id: 0x6d37680 <x-coredata://32402F51-A312-4065-9FE0-251D70DA83B0/StoreAllCustomers/p1> ; data: {
    account = nil;
    invoices = "<relationship fault: 0x1092f9f0 'invoices'>";
    ipCuId = 0;
    status = 2;
    xCuAddress1 = "";
    xCuAddress2 = nil;
    xCuAddress3 = nil;
    xCuContactName = Meredith;
    xCuCountry = nil;
    xCuCounty = nil;
    xCuEmail = Joe;
    xCuFax = Joe;
    xCuName = Joe;
    xCuNcId = nil;
    xCuPostcode = nil;
    xCuRef = nil;
    xCuRegNum = nil;
    xCuTel = Meredith;
    xCuTotInvoiced = 0;
    xCuTotOutstanding = 0;
    xCuTown = nil;
    xCuVatNum = nil;
    xCuVtId = nil;
    xCuWebsite = Meredith;
    xImCuId = 2287;
})
OK I GOT IT!!! YAY! 2 days and I am learning!
now, My data is coming across just like you described if I log it. so how can I access the data?

I have tried this:
Code:
	for (id object in eventArray) {
		NSLog(@"%@",object.data.name);
		//NSLog(@"%@",object.name);
		NSLog(@"%@",object.recipe.name);
	}
i am so close I can smell it!

bo
roberthuttinger is offline   Reply With Quote
Old 07-16-2011, 11:59 AM   #18 (permalink)
Registered Member
 
roberthuttinger's Avatar
 
Join Date: Sep 2008
Posts: 96
roberthuttinger is on a distinguished road
Lightbulb

Quote:
Originally Posted by roberthuttinger View Post
I figured it out through some eduction and trial and error and error and error.

But I got it!!!!

Code:
	NSMutableArray* annotations=[[NSMutableArray alloc] init];
	// Save our fetched data to an array  
        [self setEventArray: mutableFetchResults];  
        [mutableFetchResults release];  
        [request release]; 
        //NSLog(@"%d",[eventArray count]);
	
	for (int i = 0; i < [eventArray count]; i++) {
		//NSLog(@"%@",[[eventArray objectAtIndex:i] name]);
		
		CLLocationCoordinate2D theCoordinate;
		double latNum = [[[eventArray objectAtIndex:i] latitude] doubleValue];
		theCoordinate.latitude = latNum;
		double lonNum = [[[eventArray objectAtIndex:i] longitude] doubleValue];
		theCoordinate.longitude = lonNum;
		//-------------------------
		MyAnnotation* tempAnnotation=[[MyAnnotation alloc] init];
		tempAnnotation.coordinate=theCoordinate;
		tempAnnotation.title=[NSString stringWithFormat:@"%@",[[eventArray objectAtIndex:i] name]];
		tempAnnotation.subtitle=[NSString stringWithFormat:@"%@",[[eventArray objectAtIndex:i] name]];
		//-------------------------
		[mapView addAnnotation:tempAnnotation];
		[annotations addObject:tempAnnotation];
	}
Put it in an array and rll over it... thanks all fr the guidance!
roberthuttinger is offline   Reply With Quote
Reply

Bookmarks

Tags
core-data, fetchedmanagedresults, viewcontroller

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On



» Advertisements
» Online Users: 373
9 members and 364 guests
apatsufas, chemistry, Kirkout, leostc, lzwasyc, MarkC, Sami Gh, SamorodovAlex, VinceYuan
Most users ever online was 1,387, 04-10-2012 at 04:21 AM.
» Stats
Members: 175,664
Threads: 94,120
Posts: 402,898
Top Poster: BrianSlick (7,990)
Welcome to our newest member, Leslie80
Powered by vBadvanced CMPS v3.1.0

All times are GMT -5. The time now is 02:38 AM.
Powered by vBulletin® Version 3.8.0
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.0