让我们假设我有一个关于烹饪食谱的应用程序,它有两个基本特征:
标准情景
我现在的食谱是"芝士蛋糕",RecipeDetailViewController我可以看到我为这个食谱添加的当前成分:
好吧,让我说我对最终结果感到满意,我决定保存(记录)我刚准备好的食谱.
*点击保存*
配方现在已保存(现已记录),RecipesHistoryViewController我可以看到如下内容:
现在,如果我想,我可以编辑历史中的食谱,并将牛奶换成豆浆.
在历史记录中编辑配方的问题不应该在我当前的配方中编辑配方(及其成分),反之亦然.如果我编辑当前食谱并用花生酱替换黄油,则不得编辑历史记录中存储的任何食谱.希望我解释自己.
后果
这种情况意味着什么?意味着目前,为了满足这些功能的功能,每次用户点击"保存配方"按钮时,我都会复制配方和每个子关系(成分).它确实有效,但我觉得它可以更干净.有了这个实现,事实证明我有不同重复的核心数据对象(sqlite行),如下所示:
等等
想法?如何优化此模型结构?
编辑1
我已经想过用一个属性来创建任何RecipeHistory对象NSString,我可以存储一个json字典,但我不知道它是否更好.
编辑2
目前,一个RecipeHistory对象包含:
+-- RecipeHistory --+
| |
| attributes: |
| - date |
+-------------------+
| relationships: |
| - recipes |
+-------------------+
+----- Recipe ------+
| relationships: |
| - recipeInfo | …Run Code Online (Sandbox Code Playgroud) 我正在开发一个iOS应用程序,让用户可以通过Graph API搜索一个人.
我想要的是它在Facebook网站上出现的相同行为.您知道何时开始在顶部文本输入中搜索某个人?第一个结果将主要是你的朋友和你可能认识的一些人或你已经找过的人.
问题?尝试在此处使用相同的搜索模式来搜索人:Graph Api Explorer
图表Api返回的结果与Facebook网站上的搜索输入不同.
有谁知道为什么?有没有办法达到同样的效果?
嘿,我已经创建了一个数据库.现在我更新了UserProfile:
class UserProfile(models.Model):
user = models.ForeignKey(User, unique = True, related_name = 'user')
follows = models.ManyToManyField("self", related_name = 'follows') <-- NEW LINE
Run Code Online (Sandbox Code Playgroud)
所以python manage.py sqlall myapp回报我:
[...]
CREATE TABLE "myapp_userprofile_follows" (
"id" integer NOT NULL PRIMARY KEY,
"from_userprofile_id" integer NOT NULL,
"to_userprofile_id" integer NOT NULL,
UNIQUE ("from_userprofile_id", "to_userprofile_id")
)
[...]
Run Code Online (Sandbox Code Playgroud)
当我跑python manage.py syncdb:
Creating tables ...
Installing custom SQL ...
Installing indexes ...
No fixtures found.
Run Code Online (Sandbox Code Playgroud)
但是当我尝试将数据插入时,不会创建表.为什么?(我在本地测试,使用sqlite3)
我有一个带两个模型的Django应用程序:第一个是django.contrib.auth.User第二个Product,第二个是由我创建的.
对于每个产品,我都会添加注释,因此每个注册的用户都可以为每个产品插入注释.
我已经看到了django.contrib.comments,但可能是类似博客的网站,如果他们没有注册,每个用户都可以留下评论.我会在评论表中只用textarea写评论,用户自动设置为request.user.
我应该从头开始编写评论系统吗?
我多年来一直有问题.
问题是一个长文本没有被div中的空格分隔.没有应用换行,它会破坏所有布局.
我怎样才能以好的方式修复django?
这就是我所看到的:

在我的iPhone应用程序启动时,如果用户未登录,我想隐藏标签栏并在底部显示一个工具栏,只有两个居中的按钮(注册和登录).
我怎样才能做到这一点?
当你在我的应用程序中请求某些东西(比如按下按钮或其他任何东西)时,我想实现这一点,我希望它看起来像一个小的矩形,上面写着"loading ..",当加载完成时,它会消失,并带有"上滑效果" ".我做了一个简单的模型来描述我正在努力实现的目标.你有什么暗示吗?谢谢.

注意:我不希望拉动刷新效果(加载视图显示没有屏幕滚动,例如当您发送评论时出现)
更新:
我尝试过Cirrostratus代码:
- (IBAction)displayLoadingScreen:(id)sender
{
NSLog(@"pressed");
UIView *loadingView = [[UIView alloc] init];
loadingView.frame = CGRectMake(0,-40,320,40);
[loadingView setBackgroundColor:[UIColor blueColor]];
[self.view addSubview:loadingView];
//animate in within some method called when loading starts
[UIView animateWithDuration:1.0
animations:^{
loadingView.frame = CGRectMake(0,0,320,40);
}
completion:^(BOOL finished) {
}];
for (int i = 0; i < 10000; i++) {
NSLog(@"%d", i);
}
//animate out within some method called when loading ends
[UIView animateWithDuration:1.0
animations:^{
loadingView.frame = CGRectMake(0,-40,320,40);
}
completion:^(BOOL finished){
}];
}
Run Code Online (Sandbox Code Playgroud)
为什么加载视图在for循环后 …
我正在学习使用AFNetworking.
我知道我可以使用AFHTTPClientjson发出POST请求.
我的问题是:有没有办法制作标准的POST请求(即内容类型为application/x-www-form-urlencoded)?我的服务器后端不接受json,因为客户端应该使用相同的表单通过web登录.
在过去我用过ASIHTTPRequest,我用过这段代码:
url = [NSURL URLWithString:@"www.example.org/login/"];
request = [ASIFormDataRequest requestWithURL:url];
[request setPostValue:self.username forKey:@"username"];
[request setPostValue:self.password forKey:@"password"];
[request startAsynchronous];
Run Code Online (Sandbox Code Playgroud)
谢谢!
今天我有一个难题,它会给我带来一些问题.
我开始在我的生活中首次实现iOS应用程序中的Facebook登录/连接.
有什么奇怪的?到目前为止没什么,除了我希望用户只能通过Facebook登录在应用程序中登录,而不是注册.我解释得更好:只有已在我网站注册的用户才能使用Facebook登录进行登录.
是可能还是幻觉?例如,如果在显示权限弹出窗口之前有办法获取已登录用户的facebook uuid,那将会很棒,因为我在我的数据库中检查了这个uuid,如果存在,我将允许连接用户.
我有两个型号:
Item.js
const mongoose = require('mongoose');
const itemSchema = new mongoose.Schema({
name: String,
stores: [{ type: mongoose.Schema.Types.ObjectId, ref: 'Store' }]
});
const Item = mongoose.model('Item', itemSchema);
module.exports = Item;
Run Code Online (Sandbox Code Playgroud)
Store.js
const mongoose = require('mongoose');
const storeSchema = new mongoose.Schema({
name: String,
items: [{ type: mongoose.Schema.Types.ObjectId, ref: 'Item' }]
});
const Store = mongoose.model('Store', storeSchema);
module.exports = Store;
Run Code Online (Sandbox Code Playgroud)
还有一个seed.js文件:
const faker = require('faker');
const Store = require('./models/Store');
const Item = require('./models/Item');
console.log('Seeding..');
let item = new Item({
name: faker.name.findName() …Run Code Online (Sandbox Code Playgroud) ios ×5
objective-c ×4
django ×3
iphone ×3
python ×3
facebook ×2
afnetworking ×1
core-data ×1
django-apps ×1
javascript ×1
mongodb ×1
mongoose ×1
node.js ×1
nosql ×1
uitabbar ×1
uitoolbar ×1
uiview ×1