我想从用户那里获取电子邮件地址.他登录,我请求访问电子邮件的权限,他选择确定.然后我使用Facebook的图形API来访问电子邮件地址.
- (void) fbDidLogin
{
btnLogin.isLoggedIn = TRUE;
[btnLogin updateImage];
NSString *theURL =
[ [NSString stringWithFormat:
@"https://graph.facebook.com/me?access_token=%@", facebook.accessToken
]stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding
];
NSLog(@"%@", theURL);
[facebook requestWithGraphPath: theURL andDelegate: self];
}
...
- (void)request:(FBRequest*)request didLoadRawResponse:(NSData*)data
{
NSString *response = [[NSString alloc] initWithData: data encoding: NSUTF8StringEncoding];
NSLog(@"%@", response);
[response release];
}
Run Code Online (Sandbox Code Playgroud)
这是我获取信息的方式:
- (void) request:(FBRequest*)request didLoad:(id)result
{
if ([result isKindOfClass:[NSDictionary class]])
{
NSString *email = [result objectForKey: @"email"];
NSString *name = [result objectForKey: @"name"];
NSString *facebookId = [result objectForKey: @"id"];
//...
}
} …Run Code Online (Sandbox Code Playgroud) 我有这个全局错误处理程序:
import { ErrorHandler, Injectable, Injector } from '@angular/core';
import { Router } from '@angular/router';
@Injectable()
export class GlobalErrorHandler extends ErrorHandler
{
constructor(private injector: Injector) {
super(false);
}
handleError(error) {
super.handleError(error);
const router = this.injector.get(Router);
router.navigateByUrl('/error');
}
}
Run Code Online (Sandbox Code Playgroud)
我把它放在app.module中:
providers: [
{
provide: ErrorHandler,
useClass: GlobalErrorHandler
}
]
Run Code Online (Sandbox Code Playgroud)
为了测试这个我在服务中抛出一个错误.由于某种原因,错误组件与页面的其他内容一起显示.像这样的东西:
如果我通过转到/错误测试错误组件它会显示如下(错误页面是一个单行的段落):
Sorry, something went wrong!
Run Code Online (Sandbox Code Playgroud)
但是当我进入我的主页时,错误应该触发它会显示如下:
Sorry, something went wrong!
....
... Original content for /home
....
Sorry, something went wrong!
Run Code Online (Sandbox Code Playgroud)
有人可以告诉我,我做错了什么?
更新
我已经更新到angular-cli 1.5.2并且还更新到了角度5并且那里的bug似乎已经修复了.我可以使用路由器导航到错误页面.
我尝试在我的styles.scss中使用mixin,但它未定义。我试过了:
@include media-breakpoint-up(sm) {
.some-class {
display: block;
}
}
Run Code Online (Sandbox Code Playgroud)
结果:
@include media-breakpoint-up(sm) {
^
No mixin named media-breakpoint-up
Run Code Online (Sandbox Code Playgroud)
再次导入引导程序:
@import“ ../node_modules/bootstrap/scss/bootstrap.scss”;
现在可以正常工作,但是如果我查看styles.bundle.js,则会包含两次引导程序。Bootstrap已包含在angular-cli.json中。
也许这是一个愚蠢的问题.每次我做一个@property我必须这样@synthesize做.但这没有任何意义,你可以做的唯一事情@property(whatever) Type* property就是@synthesize property在实现文件中做.为什么两者都需要?为什么编译器在没有必须编写的情况下自动生成getter/setter方法@synthesize property.
我有一个SQLite数据库,包含2个表4000+行,每行用于自动完成.我看到了非常简单的示例,它们使用字符串数组来提供自动完成功能,或者使用联系人列表来执行相同操作.显然,在我的案例中,这些都不起作用.对于自动完成,如何将自己的SQLite数据库与我自己的自动完成数据一起使用.我是否必须创建内容提供商?怎么样?请给我一些例子,因为我找不到任何例子.我已设法覆盖SQLiteOpenHelper将数据库从assets文件夹复制到android上的/ data/data/MY_PACKAGE/databases /文件夹.我创建了一个CursorAdapter使用我的自定义SQLiteOpenHelper并从中返回游标的自定义runQueryOnBackgroundThread.关于某些_id列丢失,我得到了奇怪的错误.我已将_id列添加到表中.我也不明白Filterable接口在做什么以及何时过滤我的数据.我需要覆盖哪些方法/类?谢谢.
我真的不知道什么时候需要复制一个块.
文件说when you expect the block to be used after destruction of the scope within which it was declared.
当我将它们用作回调方法时,是否需要复制它?副本我的意思是为我的块创建一个复制属性并在那里保存块或以某种方式发送一个复制消息.当下载或类似的内容完成时,范围可能会被破坏.那么在这种情况下我需要复制块吗?我可以用这种方式创建循环引用吗?
现在我有一个下载器类(仅测试块,对我来说太危险了)使用完成块,当我复制块时,创建块的视图控制器和下载器类不会被释放.
你能给我一些很好的例子,特别是用它们来完成文件下载等异步操作吗?
谢谢.
UPDATE2我想我找到了泄漏的真正来源。我有一些业务对象具有我忘记发布的字符串属性。这些字符串属性是从我的自定义 xlm 节点对象复制而来的,在此处创建 (KGYXMLNode) 我不明白为什么在这里报告泄漏而不是我的自定义类。我的 NSString 属性是copy和不是retain.
更新:我认为这是 Instruments 中的错误或其他东西,或者它不再神奇地泄漏,但是由于 xcode 4 它没有显示此泄漏。
您好,根据仪器,我在以下代码中有泄漏。我已经围绕某些 libxml 函数构建了一个 Objective-c 包装器,以便能够使用 xpath 解析 xml 文档,并且在这种方法中,我为我的自定义节点对象设置了innerText。
-(void) SetInnerTextForNode: (xmlNodePtr) node : (KGYXMLNode *) obcNode
{
if ((node) && (node->children))
{
for (xmlNodePtr pnode = node->children; pnode != NULL; pnode = pnode->next)
{
if (pnode->type == XML_TEXT_NODE)
{
xmlChar *content = pnode->content;
NSString *innerText = [[NSString alloc] initWithUTF8String: (char *)content];
NSString *trimmedText = [innerText stringByTrimmingCharactersInSet: trimCharSet];
if (trimmedText.length > 0) …Run Code Online (Sandbox Code Playgroud) 我有以下设置:
{
"AppSettings": {
"ConnectionString": "mongodb://localhost:27017",
"Database": "local",
"ValidOrigins": [ "http://localhost:61229" ]
},
"Logging": {
"IncludeScopes": false,
"Debug": {
"LogLevel": {
"Default": "Warning"
}
},
"Console": {
"LogLevel": {
"Default": "Warning"
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我做绑定:
services.Configure<AppSettings>(Configuration.GetSection("AppSettings"));
Run Code Online (Sandbox Code Playgroud)
我有以下设置文件:
public class AppSettings
{
public string ConnectionString = "";
public string Database = "";
public List<string> ValidOrigins { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
做绑定:
AppSettings settings = new AppSettings();
Configuration.GetSection("AppSettings").Bind(settings);
Run Code Online (Sandbox Code Playgroud)
settings.ValidOrigins是确定的,但ConnectionString和Database都null.我究竟做错了什么?
我见过具有包含2或3个单元格的行的表视图的应用程序.类似于以下内容:
| 3 cells in one row | /-------\ /-------\ /-------\ |do this| | do | |do smth| <--- table view row that contains 3 cells | | | that | | else | \-------/ \-------/ \-------/
当您单击一个单元格时,它们的行为与单元格完全相同,并且具有不同的事件.有没有一种简单的方法可以做到这一点,或者我必须使用一些技巧.
我制作了一个类似于这个的应用程序:http://www.youtube.com/watch?v = U2uH-jrsSxs(声音有点大而且糟糕).问题是在每个纹理的底部都有一条非常细的线/点/出现的东西.这几乎是不明显的,但它在那里,我不知道为什么.我的纹理大小是256x256.我测试了纹理尺寸为128x128的earliear我觉得那里什么都没有,但不确定.这不是什么大问题,因为它很薄但我觉得很烦人.这是一个截图.我选择RED那些线.我是OpenGL(ES)的菜鸟,所以我可能做错了.任何帮助表示赞赏.
objective-c ×6
iphone ×3
angular ×2
android ×1
asp.net-core ×1
autocomplete ×1
bootstrap-4 ×1
c# ×1
css ×1
facebook ×1
instruments ×1
java ×1
libxml2 ×1
memory-leaks ×1
opengl-es ×1
properties ×1
sass ×1
scss-mixins ×1
sqlite ×1
textures ×1
uitableview ×1