我一直在读这个问题,觉得我不太同意这个说法Separation of user and profile data is a nice touch.
在我看来,分析数据,例如国家或属于用户对象的任何东西,同时将这些数据分成简档导致创建与用户对象具有1对1关系的新对象(和表).仅仅因为美学原因,这种分离是否被认为是一种好的做法?(您只能在一个表中看到用户输入数据,而在另一个表中看到生成的数据)
我是我的Django应用程序我正在获取特定模型的所有对象,如下所示:
secs = Sections.objects.filter(order__gt = 5)
Run Code Online (Sandbox Code Playgroud)
我通过这个varbiles到我的模板,我可以访问模型像所有的属性section.name,section.id等等.
有一个叫模型Books具有FK的Sections模型.当我secs在模板中迭代varible时,如何访问每个Section的Books数?有点喜欢{{ sec.Books.count }}?
谢谢
我基本上创建了一个轻量级类,它传递了大约10个参数,它不会改变这些参数,它只是在构造函数中将它们存储在本地.
一些是引用类型(字符串,类),其他是值类型(int,bool,enums).
我的问题是我应该用关键字'ref'传递这些(除了我的类)吗?
我在这里考虑的是表现.
我有覆盖GetHashCode,Equals并且两种方法为不同的对象提供相同的结果,但为什么仍然得到假?
class Program
{
static void Main(string[] args)
{
Console.WriteLine(new Person("james") == new Person("james"));
Console.ReadKey();
}
}
class Person
{
private string Name;
public Person(string name)
{
Name = name;
}
public override int GetHashCode()
{
return 1;
}
public override bool Equals(object obj)
{
return true;
}
}
Run Code Online (Sandbox Code Playgroud) 这就是我如何在1到6之间生成一个唯一的no并从drawable文件夹中获取适当的图像.
Random rand = new Random();
// n = the number of images, that start at idx 1
rndInt = rand.nextInt(6) + 1;
String imgName = "card" + rndInt;
int id = getResources().getIdentifier(imgName, "drawable", getPackageName());
imgView.setImageResource(id);
Run Code Online (Sandbox Code Playgroud)
我想要的是,我必须调用这个方法7次,每次这个方法都应该返回一个唯一的随机编号.所以没有一个已经选定的数字会再次出现.
通常,如果我想将$ myarray中的参数传递给$ somefunction,我可以在php中使用
call_user_func_array($somefunction, $myarray);
Run Code Online (Sandbox Code Playgroud)
但是,当希望调用的函数是对象的构造函数时,这不起作用.出于相当明显的原因,它无法做到:
$myobj = new call_user_func_array($classname, $myarray);
Run Code Online (Sandbox Code Playgroud)
有什么相当优雅的确有效吗?
我有以下类别:
@interface UIViewController (Additions)
- (void)exampleMethod;
@end
-----
#import "UIViewController+Additions.h"
@implementation UIViewController (Additions)
- (void)exampleMethod {
NSLog(@"Example.");
}
@end
Run Code Online (Sandbox Code Playgroud)
我还有以下抽象类:
@interface DFAbstractViewController : UIViewController
@end
-----
#import "DFAbstractViewController.h"
#import "UIViewController+Additions.h"
@implementation DFAbstractViewController
@end
Run Code Online (Sandbox Code Playgroud)
这是具体的课程:
#import "DFAbstractViewController.h"
@interface DFConcreteViewController : DFAbstractViewController
@end
-----
#import "DFConcreteViewController.h"
@implementation DFConcreteViewController
- (void)viewDidLoad {
[self exampleMethod];
}
@end
Run Code Online (Sandbox Code Playgroud)
好的.所以我的理解是具体类DFConcreteViewController可以使用从其超类中的类别导入的方法DFAbstractViewController.这是正确的,因为方法调用按预期工作.
问题是Xcode给了我以下警告:'DFConcreteViewController' may not respond to '-exampleMethod'.
我没有看到这个方法及其可用性如何DFConcreteViewController对编译器不完全清楚?也许我误解了类别的一些东西?
在今天进行编码时,我注意到时间跨度和格式化字符串有些奇怪.我试图打印时间跨度,例如01:03:37作为1:03:37(不数小时的前导0).所以我使用了格式字符串h:mm:ss.然而,这给了我一个前导0.如果我将TimeSpan转换为DateTime并再次做同样的事情,h格式化字符串按预期工作.
一个示例控制台程序:
class Program
{
static void Main(string[] args)
{
var time = new TimeSpan(01, 03, 37);
var culture = new CultureInfo("sv-SE");
Thread.CurrentThread.CurrentCulture = culture;
Thread.CurrentThread.CurrentUICulture = culture;
Console.WriteLine(time.ToString());
Console.WriteLine(string.Format(culture, "{0:h:mm:ss}", time));
Console.WriteLine(string.Format(culture, "{0:hh:mm:ss}", time));
Console.WriteLine((new DateTime(time.Ticks)).ToString("h:mm:ss", culture));
Console.WriteLine((new DateTime(time.Ticks)).ToString("hh:mm:ss", culture));
Console.ReadKey();
}
}
Run Code Online (Sandbox Code Playgroud)
输出:
01:03:37
01:03:37 // <-- expected: 1:03:37
01:03:37
1:03:37
01:03:37
Run Code Online (Sandbox Code Playgroud)
为什么TimeSpan和DateTime的表现不同?
我有两个设备 - HTC Tattoo和索尼爱立信Xperia X10.一个有145 DPI,另一个有245 DPI.
当我以点为单位指定TextView的字体大小时,如下所示:
textView.setTextSize(TypedValue.COMPLEX_UNIT_PT, 6.5f);
Run Code Online (Sandbox Code Playgroud)
我在这两个设备上获得了不同的文本物理大小.在245 DPI上,文本几乎不可读.
现在,"pt"大小应该是物理的.即,在我的测试中,两个文本块都应该具有相同物理高度的字母.事实并非如此.
这可能有什么不对?
谢谢你的帮助,尤里.