我试图在Mac OS X 10.8上使用新的ACAccountStore功能通过Facebook登录但我收到一个错误:
Facebook服务器无法满足此访问请求:没有存储app的remote_app_id
当代码执行requestAccessToAccountsWithType消息时,它确实提示我访问Facebook(我允许),并且我确实在我的设置中存储了Facebook凭据.我还有另一个用于OS X旧版本的代码路径,它使用WebView控件登录到Facebook.它确实适用于相同的APP_ID.所以我应该在Facebook开发人员设置中正确设置应用程序.在那里我还缺少一些其他的配置?我在互联网上搜索"remote_app_id",然后我得到空集.
ACAccountStore *account = [[ACAccountStore alloc] init];
ACAccountType *accountType = [account accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierFacebook];
NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys: FB_APP_ID, ACFacebookAppIdKey, [NSArray arrayWithObjects:@"email", nil], ACFacebookPermissionsKey, ACFacebookAudienceFriends, ACFacebookAudienceKey, nil];
[account requestAccessToAccountsWithType:accountType options:options completion:^(BOOL granted, NSError *error) {
if (granted) {
NSArray *accountList = [account accountsWithAccountType:accountType];
for (ACAccount *thisAccount in accountList) {
NSLog(@"Found account: %@", [thisAccount accountDescription]);
}
}
else {
NSLog(@"Not granted because: %@", [error localizedDescription]);
}
}];
Run Code Online (Sandbox Code Playgroud)
关于iPhone上的相同问题(此页面主要是谷歌登陆):问题是:在iPhone上,转到设置,左侧菜单Facebook,然后在正确的用户名/密码 - 登录Facebook.这就是"设置Facebook登录".如果iPhone实际上在"设置Facebook登录"上登录到FB,那么问题就会出现.如果您明确注销"设置Facebook登录"(实际上,可能是卸载FacebookApp),则问题将无法显示.
这是一个非常方便的扩展,适用于array任何事情:
public static T AnyOne<T>(this T[] ra) where T:class
{
int k = ra.Length;
int r = Random.Range(0,k);
return ra[r];
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,它不适合List<>任何事情.这是适用于任何人的相同扩展名List<>
public static T AnyOne<T>(this List<T> listy) where T:class
{
int k = listy.Count;
int r = Random.Range(0,k);
return listy[r];
}
Run Code Online (Sandbox Code Playgroud)
事实上,是否有一种方法可以一次性推广覆盖arrays和List<>s的泛型?或者知道不可能吗?
它发生在我身上,答案是否可以进一步包含Collections?或者确实有下面的专家之一已经实现了??
PS,我很抱歉没有明确提到这是在Unity3D环境中."Random.Range"是一个统一到骨骼的功能,"AnyOne"调用读取为任何游戏工程师的100%游戏引擎.这是你为任何游戏项目输入的第一个扩展,并且你经常在游戏代码中使用它("任何爆炸!""任何硬币声音效果!"等等!)
显然,它当然可以在任何c#milieu中使用.
我想制作一个Unity3D应用程序,在其中可以观看当前的Twitch.tv直播.
我不确定这是否可行,例如,twitch api(https://github.com/justintv/twitch-api)
我知道Unity3D中的视频纹理,我知道如何使用默认的twitch api基础知识,但我不知道如何将运行的抽搐流集成到我的应用程序中.
如果有可能,有人可以给我一个暗示吗?
非常感谢和最好的问候Meph
我只是想要运行一些东西
scheduleRepeating,在模拟器中,当应用程序处于后台时它会继续运行:这不能让我相信它明确地不会在后台运行(某些?什么?)设备scheduleRepeating烦人将(在某些?所有?例)运行只有一次,当应用进入后台.也就是说:一旦应用程序进入后台,它就会再"运行一次".吸.所以重复:在iOS中如何拥有一个每20秒运行一次的简单服务,并且只在应用程序处于前台时运行,并且它没有任何问题..理想情况下,您不必重新启动它,检查在应用程序的生命周期中它或任何东西......
真的这么简单的事情最好的方法是什么?
这是我(看似)工作的解决方案,它不够优雅.当然有一种内置的方式,或者什么,在iOS中做这么明显的事情?
open class SomeDaemon {
static let shared = SomeDaemon()
fileprivate init() { print("SomeDaemon is running") }
var timer: DispatchSourceTimer? = nil
let gap = 10 // seconds between runs
func launch() {
// you must call this from application#didLaunch
// harmless if you accidentally call more than once
// you DO NOT do ANYTHING on app …Run Code Online (Sandbox Code Playgroud) 这是关于毕加索行为的一个关键点我不知道.
想象一下,你正在展示十件物品的幻灯片.比如,他们在屏幕上各持有十秒钟.
理想的行为是这样的:在幻灯片放映开始时,我只是执行以下操作:
picasso.get( url1 )
picasso.get( url2 )
picasso.get( url3 )
picasso.get( url4 )
picasso.get( url5 )
picasso.get( url6 )
picasso.get( url7 )
picasso.get( url8 )
picasso.get( url9 )
picasso.get( url10 )
Run Code Online (Sandbox Code Playgroud)
事实上,毕加索会一次一个地排队.
毕加索的行为是什么,如果我告诉它一次预热10个网址?
是否有可能让毕加索一次只做一件事,按顺序 - 是否有这样的选择?
(产生的其他问题是,你可以取消队列,还是......?)
感谢@alicanozkara在这个页面上的惊人答案我第一次了解到
https://github.com/facebook/fresco
(13k星)无论好坏,我认为毕加索时代可能已经结束了.
对于在Unity中专门研究此难题的人来说,这很重要,
请确保看到我问的另一个问题,它提出了相关的关键问题:
对于C#专家,Unity是单线程的1
在另一个线程上进行计算等是很常见的。
当您在另一个线程上执行某些操作时,您经常会使用async / wait,因为,所有优秀的C#程序员都说这是简单的方法!
void TankExplodes() {
ShowExplosion(); .. ordinary Unity thread
SoundEffects(); .. ordinary Unity thread
SendExplosionInfo(); .. it goes to another thread. let's use 'async/wait'
}
using System.Net.WebSockets;
async void SendExplosionInfo() {
cws = new ClientWebSocket();
try {
await cws.ConnectAsync(u, CancellationToken.None);
...
Scene.NewsFromServer("done!"); // class function to go back to main tread
}
catch (Exception e) { ... }
}
Run Code Online (Sandbox Code Playgroud)
好的,因此,当您执行此操作时,在Unity / C#中以更常规的方式启动线程时,您将“照常做” (例如,使用Thread或其他方法,或者让本机插件执行它,或使用OS或其他方法)可能是这样)。
一切都很好。
作为一个la脚的Unity程序员,他只知道足够的C#来结束一天,我一直认为 …
我现在收到这个错误,当我用Xcode 5.1打开我的项目时,这个错误没有出现过.
同一层次结构中的两个视图具有相同的恢复标识符
我试图更改ID但它不会删除错误.我还尝试清理我的构建并删除我的派生数据.
任务是:我有两个UIImageViews,如果系统语言是乌克兰语,我想要现在的ImageView1,如果它不是乌克兰语(英语/波兰语等),我想要现在的ImageView2.
我试过了 :
println(NSUserDefaults.standardUserDefaults().objectForKey("AppleLanguages"))
Run Code Online (Sandbox Code Playgroud)
但此代码仅提供可用语言列表.我也试过了
var language: AnyObject? = NSLocale.preferredLanguages().first
Run Code Online (Sandbox Code Playgroud)
但是如何将这个变量与英语或乌克兰语进行比较呢?
我有一个像这样的普通Xcode项目......
注意有一个名为"images"的文件夹(它是一个实际的文件夹 - 而不仅仅是一个组).它包含25".png"图像.
我想做的就是用这些图像制作一个数组 UIimage.
(甚至,图像名称或类似的数组,没关系 - 然后可以加载它们UIImage(named:)
我如何获得该文件夹"图像"?子文件夹"images/cars"怎么样?
我试过这样的东西,但没有找到......
override func viewDidLoad()
{
let imageArray = NSBundle.mainBundle().URLsForResourcesWithExtension(
"png", subdirectory: "images")
print("test...")
for n:NSURL in imageArray!
{ print("found ..." ,n) }
}
Run Code Online (Sandbox Code Playgroud) 现在,在Unity中拖动UI元素非常容易:制作一些UI项目.添加组件 - >事件 - > 事件触发器.放在下面的脚本上.单击以添加四个明显的触发器.你完成了.
然而.
我完全迷失了指针坐标和UI坐标之间的关系(如RectTransform中所见,等等).
在DragIt下面:你怎么在手指下正确移动UI面板?
假设你有一个大面板,十个UIButton坐在面板Dragster上,按钮上.RectTransform坐标和鼠标指针之间的关系是什么...
简而言之,如何在DragIt()下方移动其中一个按钮?
/* modern Unity drag of UI element */
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.Events;
using UnityEngine.EventSystems;
public class Dragster:MonoBehaviour
{
public int index; // number each of your UI items
static bool beingDragged = false;
static int dragFrom;
public void DragStart()
{
beingDragged = true; dragFrom = index;
}
public void DragIt()
{
? ? W T F ? ? …Run Code Online (Sandbox Code Playgroud) ios ×4
c# ×3
objective-c ×2
swift ×2
.net ×1
android ×1
arrays ×1
facebook ×1
generics ×1
image ×1
localization ×1
nslocale ×1
picasso ×1
service ×1
storyboard ×1
swift3 ×1
twitch ×1
uiimage ×1
unity3d-ui ×1
xcode5 ×1