Вы можете проверить rangeOfString, чтобы увидеть, что iPad существует именно так.
NSString *deviceModel = (NSString*)[UIDevice currentDevice].model;
if ([deviceModel rangeOfString:@"iPad"].location != NSNotFound) {
NSLog(@"I am an iPad");
} else {
NSLog(@"I am not an iPad");
}
Попробуйте шаблон Builder:
http://rwhansen.blogspot.com/2007/07/theres-builder-pattern-that-joshua.html
Объедините шаблон Bean с Builder. У вашего объекта не будет несогласованного состояния на полпути его конструкции, но он все равно займет 20+ заданных операций, и вы можете сделать свой объект неизменным (если хотите), но не YourObjectBuilder.
public class YourObject {
private Type field1;
private Type field2;
private Type field3;
...
YourObject ( Type field1 , Type field2 , Type field3 ... ) { }
}
public class YourObjectBuilder {
private Type field1;
private Type field2;
private Type field3;
...
public YourObjectBuilder() {
}
public YourObject make ( ) {
return new YourObject ( field1 , field2 , field3 ... ) ;
}
public void setField1(Type t) {
field1 = t;
}
public void setField2(Type t) {
field2 = t;
}
public void setField3(Type t) {
field3 = t;
}
...
}
public class YourObject {
private Type field1;
private Type field2;
private Type field3;
...
public YourObject() {
}
public void setField1(Type t) {
field1 = t;
}
public void setField2(Type t) {
field2 = t;
}
public void setField3(Type t) {
field3 = t;
}
...
}