目前我正在测试TestFlight.我创建了一些内部测试人员并开始了beta测试.内部测试人员收到邀请电子邮件以开始测试.以下是我的问题:
如果点击邀请电子邮件中的链接,哪个帐户可以测试应用?
如果转发电子邮件会怎样?只有来自内部测试人员的Apple ID才能测试应用程序吗?或者每个拥有该电子邮件的人?我有问题,电子邮件只能转发给我测试设备上的应用程序.目前,内部测试仪的Apple ID已分配给设备.另一个设备(可能有不同的Apple ID)现在已经使用了邀请.如果我想接受转发的邀请电子邮件中的链接,我会得到
邀请已被使用.再试一次.
即使我有正确的Apple ID,TestFlight应用程序也不会向我显示打开的邀请.你必须使用这封电子邮件.一般情况下,最多10台设备应该能够在iTunes帐户(内部测试仪)上测试应用程序.
如何将多个设备添加到一个帐户?
这有什么要求?相同的Apple ID?好.在所有设备之间启用同步(包括应用)?
我想知道PCL(可移植类库)和普通库之间的区别.
PCL使用配置文件来确定哪些平台和功能可用.两者都可以生成可以在不同平台上使用的DLL.对于普通的库项目,您还可以设置目标框架(例如.NET 3.5).Xamarin说#if编译器指令仅适用于共享项目,这意味着它们不用于PCL.我认为PCL和图书馆项目非常相似.
那么在处理不同的移动平台时有什么不同?
如何检查NSNumber对象是否为空?
好的很容易:
NSNumber *myNumber;
if (myNumber == nil)
doSomething
Run Code Online (Sandbox Code Playgroud)
但是如果对象已经创建,但由于分配失败而没有值,我该如何检查?用这样的东西?
if ([myNumber intValue]==0)
doSomething
Run Code Online (Sandbox Code Playgroud)
是否有一种通用的方法来测试空虚上的对象,例如NSString可用(参见这篇文章))?
例1
NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];
[dict setValue:@"" forKey:@"emptyValue"];
NSNumber *emptyNumber = [dict objectForKey:@"emptyValue"];
Run Code Online (Sandbox Code Playgroud)
哪个值emptyNumber包含?我该怎么检查emptyNumber为空?
例2
NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];
[dict setValue:@"" forKey:@"emptyValue"];
NSString *myString = [dict objectForKey:@"emptyValue"];
if (myString == nil || [myString length] == 0)
// got an empty value
NSNumber *emptyNumber=nil;
Run Code Online (Sandbox Code Playgroud)
如果我之后使用它会发生什么 emptyNumber设置为nil?
[emptyNumber intValue]
Run Code Online (Sandbox Code Playgroud)
我得到零吗?
例3
NSMutableDictionary *dict = [[NSMutableDictionary alloc] …Run Code Online (Sandbox Code Playgroud) 我想以递归方式设置文件夹和文件权限.文件夹应该得到750和文件644.我发现了这个并做了一些改编.这个有用吗?
<?php
function chmod_r($Path) {
$dp = opendir($Path);
while($File = readdir($dp)) {
if($File != "." AND $File != "..") {
if(is_dir($File)){
chmod($File, 0750);
}else{
chmod($Path."/".$File, 0644);
if(is_dir($Path."/".$File)) {
chmod_r($Path."/".$File);
}
}
}
}
closedir($dp);
}
?>
Run Code Online (Sandbox Code Playgroud) 我将文件保存到Xamarin中的System.Environment.SpecialFolder.Personal,它似乎成功,因为我可以立即从文件中提取数据.但是,我无法在手机上浏览和查找此文件,这个难以捉摸的"个人"文件夹.
我目前正在实施登录系统.我想将密码和salt存储在数据库中.现在我发现有一个hash()和一个crypt()函数似乎做同样的事情(对SHA512有效).
hash()是更新的,似乎支持更多的哈希算法比crypt().还是我应该知道/关心的其他差异?
编辑:
function generatePasswordHash($password){
$salt = base64_encode(mcrypt_create_iv(8));
$calculatedPasswordHash = crypt($password, '$1$' . $salt . '$');
return $calculatedPasswordHash;
}
Run Code Online (Sandbox Code Playgroud)
结果看起来像 $1$Qh6ByGJ9$zLn3yq62egvmc9D7SzA2u.
这是我的密码检查功能:
function checkLoginData($username, $password){
global $db;
$sql = "SELECT * FROM users WHERE username = :username";
$result = $db->ExecuteQuery($sql, array("username"=>$username));
if(!empty($result)){
$result = $result[0];
$savedPasswordHash = $result['password'];
$splitted = explode("$", $savedPasswordHash);
$salt = $splitted[2];
$calculatedPasswordHash = crypt($password, '$1$' . $salt . '$');
if($savedPasswordHash === $calculatedPasswordHash){
return true;
}
}
return false;
}
Run Code Online (Sandbox Code Playgroud) 我有一个应用程序正在等待开发人员发布(Apple批准).该应用程序从未发布过.现在我想提交更新.因此我增加了CFBundleVersion,但他抱怨道.所以我也增加了CFBundleShortVersionString.
在iTunes Connect中,我可以在预发布中看到我的新提交.但在版本视图中,我看到了旧版本.那么我该如何批准更新?如果我能够自己管理发布的时间,那就太好了.因此,它一直等待开发人员发布.
我有什么选择?我应该拒绝二进制文件吗?我应该使用哪些版本/内部版本号?我可以重复使用旧的吗?
我想执行以下操作
MainPage = new ContentPage
{
Content = new StackLayout
{
Children =
{
new Button
{
Text = "Thread.Sleep",
Command = new Command(() =>
{
Thread.Sleep(1000);
MainPage.Animate("", x => MainPage.BackgroundColor = Color.FromRgb(x, x, x));
}),
},
new Button
{
Text = "Task.Run + Thread.Sleep",
Command = new Command(async () =>
{
await Task.Run(() => Thread.Sleep(1000));
MainPage.Animate("", x => MainPage.BackgroundColor = Color.FromRgb(x, x, x));
})
},
new Button
{
Text = "Device.StartTimer",
Command = new Command(() => Device.StartTimer(
TimeSpan.FromSeconds(1),
() …Run Code Online (Sandbox Code Playgroud) 今天我更新到Xamarin.Forms 2.5.0并看到,我得到以下警告:
警告CS0618'Forms.Context'已过时:'版本2.5后,上下文已过时.请改用当地语境.'
我怎样才能获得本地环境而不是Forms.Context?Android上下文意味着什么?
警告CS0618'ButtonRenderer.ButtonRenderer()'已废弃:'从2.5版开始,此构造函数已过时.请改用ButtonRenderer(Context).
在我,ButtonRenderer我只有OnElementChanged()方法,所以我应该在这里改变什么?只需添加一个ButtonRenderer(Context)构造函数?如果我在我的平台渲染器类中执行此操作,我仍然会收到警告.有人有例子吗?在官方文件没有提到它,谷歌也不会带来一些有用的结果,除了开源代码ButtonRenderer.此更改还涉及许多其他渲染器类.
有没有人经历过其他变化,制动插件等等?
PS:我也没有发现,什么时候Device.Windows被弃用了.现在我用它取而代之Device.UWP.
我有一个类似于iOS日历的月视图,并且UICollectionView使用了一个.现在,实现无限滚动行为会很有趣,这样用户可以在每个方向上垂直滚动,它永远不会结束.现在的问题是如何以有效的方式实施这种行为?这是我现在发现的:
基本上,您可以检查是否到达当前滚动视图的末尾.您可以在里面scrollViewDidScroll:或里面查看collectionView:cellForItemAtIndexPath:.将另一个内容添加到数据源会很简单,但我认为还有更多内容.如果您只添加数据,则只能向下滚动.用户应该能够向两个方向滚动(向上,向下).不知道是否reloadData会这样做.也contentOffset将改变,不应该有跳跃行为.
另一种可能性是使用WWDC 2011的Advanced ScrollView Techniques中显示的方法.这里用于设置到中心,子视图的帧被调整到距离中心相同的距离.如果我没有部分,这种方法可以正常工作.如何使用部分?layoutSubviewscontentOffsetUIScrollView
我不想使用高值的部分来伪造无限滚动,因为用户会找到结束.我也不使用任何分页.
那么如何为集合视图实现无限滚动?
编辑:
现在我尝试增加部分的数量,如果我到达结束UICollectionView.要显示新部分,必须调用reloadData.在调用此方法时,所有当前可用部分的所有计算都将再次完成!滚动浏览集合视图时,此性能问题会导致严重的断断续续,如果向下滚动,则会变得越来越慢.不知道是否可以在后台线程上转移这项工作.通过这种方法,如果您进行了所需的调整,可以向上和向下滚动.
赏金:
现在,我正在为回答这个问题提供赏金.我对如何实现iOS日历的月视图感兴趣.详细介绍无限滚动的工作原理.它在两个方向上工作(向上,向下),它永远不会结束(真正的无限 - 不重复).也没有任何延迟(即使在iPhone 4上).我想使用UICollectionView和数据由不同的部分组成,每个部分有不同数量的项目.必须做一些计算才能得到下一部分.我不需要日历部分 - 只有部分中不同项目的无限滚动行为.随意提问.
添加部分:
public override void Scrolled(UIScrollView scrollView)
{
NSIndexPath[] currentIndexPaths = currentVisibleIndexPaths();
// if we are at the top
if (currentIndexPaths.First().Section == 0)
{
NSIndexPath oldIndexPath = NSIndexPath.FromItemSection(0, 0);
UICollectionViewLayoutAttributes attributes_before = this.controller.CollectionView.GetLayoutAttributesForItem(oldIndexPath);
CGRect before = attributes_before.Frame;
CGPoint contentOffset = this.controller.CollectionView.ContentOffset;
this.controller.CollectionView.PerformBatchUpdatesAsync(delegate …Run Code Online (Sandbox Code Playgroud) c# ×4
xamarin ×4
ios ×3
iphone ×2
php ×2
xamarin.ios ×2
app-store ×1
calendar ×1
chmod ×1
cocoa-touch ×1
crypt ×1
dll ×1
encryption ×1
filesystems ×1
hash ×1
ipad ×1
nsnumber ×1
objective-c ×1
permissions ×1
sleep ×1
testflight ×1
uiscrollview ×1