我的下一个项目需要显示从上到下和从右到左(日本传统写作风格)显示的日文文本.是否可以以UITextView这种方式设置布局文本?下面是以这种方式编写的一些文本的示例:
Run Code Online (Sandbox Code Playgroud)W H O E R L L L D O ! ,
此外,我需要能够选择它(所以UILabel出来).这会变成一个完全自定义的视图吗?
我正在尝试创建一个序列化接口(类似于Cocoa的NSCoding协议),以便我可以获得一个类的快速二进制表示,以通过网络或数据库中的存储发送.但是,某些情况(特别是涉及图像编码)有许多需要的异步方法await.但是,如果字节没有按顺序写入,那么整个表示当然会被破坏.在继续下一个对象之前,我必须确保当前对象已完成序列化.这是我正在做的主要循环.
public async static Task<byte[]> Serialize(this IList<ISerializable> list) {
using (Archiver archiver = new Archiver()) {
archiver.Write(list.Count);
foreach (ISerializable value in list) {
await archiver.Write(value);
}
return archiver.Result;
}
}
Run Code Online (Sandbox Code Playgroud)
Archiver只需使用MemoryStream并BitmapWriter在引擎盖下编写BinaryWriter可以直接接受的值或ISerializable对象,然后将结果作为字节数组吐出. ISerializable只是一个有两种方法(Serialize和Deserialize)的接口.他们都返回,Task以便他们可以await编辑.问题是当我有一个没有任何异步组件的序列化方法.我可以做两件事之一:
A)async无论如何我都可以使用该类的序列化方法,并提出编译器警告说它将同步执行(我不喜欢编译器警告).
B)在方法(return Task.Run(() => {});)的末尾手动返回一个空任务.然而,这看起来和气味真的很奇怪.
A和B似乎都没有问题,但是我可能错过了这种方法有什么问题吗?我不知道Windows运行时中的二进制序列化程序(我包含标记只是为了消除任何混淆).也许我可以考虑选项C?实际上我不想让序列化方法异步,但由于某种原因task.Wait()没有等待,并且我在尝试使用CreateAsync在它准备好之前创建的对象时获得了一个空引用异常.
编辑我想到了一个选项C.我可以将整个方法包装在一个await Task.Run(...)调用中.这是正常的吗?
我有一个我没有合成的属性,而是我自己创建了一个getter和setter.因此,我假设ARC关键字(强或弱)没有意义,所以我将它们消除.这在Xcode 4.3上运行良好,但是当我的同事在XCode 4.2上打开它们时,编译器抱怨没有强/弱关键字,所以我指示他再次无意义地输入关键字.哪个是正确的(有或没有关键字)?
要明确:我有一个像这样的属性,@property (nonatomic) NSString *foo并在我实现的.m文件中-(NSString *)foo,-(void)setFoo:(NSString *)foo并且不包含@synthesize foo.另一个相关细节是没有相应的iVar,而是属性与Core Data对象交互.除非我在关键字中添加strong或弱,否则不会在XCode 4.2中编译.
编辑我想到了一个更相关的事情,其中一个属性是在协议上,我不知道这是否有所作为.
有谁知道为什么会这样?我的项目使用本地网络,所以在一台设备上测试它是没有意义的,所以我想在20上安装它.我这样做的方法是我构建它一次然后使用它将它加载到每个设备上组织者.但是,大约每3或4次传输,图标无法与其一起传输,而是仅在主屏幕上留下白色图标.如果我启动它,然后检查多任务栏,则图标就在那里(当多任务栏处于活动状态时,它会在主屏幕上显示为淡出).如果我再次转移应用程序,图标就可以了.这些设备都是32 GB的iPad 2.
图标的尺寸正确(72x72 RGB24),图标名称正确(Icon-72.png).我注意到我的信息plist中有两个条目:图标文件和图标文件(iOS 5).我的部署目标是5.0,所以我应该删除第一个?这个程序很大,转移和安装需要很长时间,所以我不喜欢加载它两次.我能做什么?
我有一个应用程序(只有ios5),在方法内部声明一个在块内使用的弱变量来引用一个视图控制器的实例.
QRCodeViewController * __weak weakSelf = self;
Run Code Online (Sandbox Code Playgroud)
问题是编译器显示警告说:
无法在自动变量上指定__weak属性
在那个应用程序中我使用了很多弱引用,我从来没有看过这样的警告,与其他类的唯一区别是这个类是在.mm文件中实现的,因为它使用了c ++对象而项目无法编译如果我把它留作.m.
我必须说代码似乎工作正常.
有什么建议吗?
weak-references objective-c objective-c++ ios automatic-ref-counting
我有一个生成RESTful请求的ios应用程序.我想根据我是否向web发送Web服务RESTful请求来自动更改我的服务调用端点.开发服务器b.登台服务器c.生产服务器
例如,
a. dev url: http://www.dev.camerakingphotos/getAllPhotos
b. test url: http://www.test.camerakingphotos/getAllPhotos
c. production url: http://www.camerkingphotos/getAllPhotos
Run Code Online (Sandbox Code Playgroud)
如何告诉XCode毫不费力地将URL切换到我的生产服务器和开发服务器?它是构建设置,预处理器宏,方案还是新目标(我认为新目标不是我想要的).理想情况下,XCode现在知道我正在测试我的应用程序的开发版本,所以我希望所有的URL都指向开发服务器.我想告诉XCode,我现在已经准备好测试我的应用程序以指向生产,因此请使用与生产服务器对应的URL.
如果我定义一个预处理器宏,我会在哪里这样做?我有一个APP_CONSTANTS.h文件,它是存储所有服务URL的单一位置.我在APP_CONSTANTS.h文件或Prefix.pch文件中定义预处理器宏吗?
有人愿意为我拼出一个详细的例子吗?
我查看了stackoverflow,但我很感激有人把所有的部分放在一起,明确地为我,不假设太多的先验知识.我仔细阅读了XCode构建指南(大部分内容),但我只看到了树木而不是森林.
谢谢!
也许这是安装新的4.5 beta的效果,但我的模拟器不会保存屏幕截图(至少不会保存到桌面).是否有任何设置告诉模拟器保存在哪里?我在Xcode 4.3中尝试了5.0和5.1,菜单闪烁,就像它正在做一些事情,但没有图片出来.Spotlight也没有任何内容.
MvvmCross的N + 1天教程N = 5在下载时在Xamarin Studio中构建良好.但是,如果我将程序集从3.0.5更新到3.0.14,则不再构建iOS项目.错误与这两行有关:
set.Bind(button).To(vm => vm.MyCommand);
set.Bind(button2).To(vm => vm.GoSecondCommand);
Run Code Online (Sandbox Code Playgroud)
错误消息如下:
无法将`lambda expression'转换为非委托类型`string'
这种方式有变化吗?对象浏览器显示正确的方法,Func<TSource, object>但似乎编译器想要使用该string版本.奇怪的是,它上面的两行绑定到常规属性工作正常,但ICommand绑定的东西失败.
我有几行代码可以运行好几个月,现在突然他们不工作,我得到一个非常奇怪的错误.这是有问题的功能:
public void OnCommandsRequested(SettingsPane settingsPane, SettingsPaneCommandsRequestedEventArgs eventArgs) {
UICommandInvokedHandler handler = new UICommandInvokedHandler(OnSettingsCommand);
SettingsCommand appSettings = new SettingsCommand("appSettings", "??????", handler);
eventArgs.Request.ApplicationCommands.Add(appSettings);
}
Run Code Online (Sandbox Code Playgroud)
当然,这会响应SettingsPane.GetForCurrentView().CommandsRequested事件而被调用.错误发生在第二行,如下所示:
mscorlib.dll中发生了'System.FormatException'类型的第一次机会异常
附加信息:Guid应包含32位数字和4个破折号(xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx).
如果我继续该应用程序,则会出现另一个异常:
mscorlib.dll中发生了'System.InvalidCastException'类型的第一次机会异常
附加信息:IPropertyValue中的对象是"String"类型,无法转换为"Guid".
这里发生了什么?正如您所看到的,我没有在任何地方使用任何GUID值.
Window {
id: uninstallWindow
width: 640
height: 480
property variant pluginData;
TableView {
id:_pluginTable
anchors.right: parent.right
anchors.rightMargin: 0
anchors.left: parent.left
anchors.leftMargin: 0
anchors.bottom: parent.bottom
anchors.bottomMargin: 43
anchors.top: parent.top
anchors.topMargin: 0
model: pluginData
itemDelegate: Text {
text: modelData
font.pixelSize: 24
}
TableViewColumn {
}
}
}
Run Code Online (Sandbox Code Playgroud)
我花了几个小时才走到这一步,我觉得这应该是一个相对简单的操作,为什么这么难?如您所见,我更改了表格中项目的字体大小,因为它们默认太小。这只会导致它们被不变的行大小剪掉。我试过了
设置 rowDelegate 对象(但这会导致默认情况下所有其他样式信息丢失,如背景、选择颜色等,我不知道如何指定它)
基于 QAbstractListModel / QAbstractTableModel 设置自定义模型对象(出于某种原因,只有 Qt 知道,“数据”函数从未被调用过......)
设置自定义项目委托(虽然高度似乎不再从这个对象控制)
我需要跳过什么箍才能让行改变它们的大小?
ios ×7
c# ×3
objective-c ×2
async-await ×1
asynchronous ×1
build ×1
c#-5.0 ×1
icons ×1
ipad-2 ×1
mvvmcross ×1
properties ×1
qml ×1
qt ×1
qt-quick ×1
qtableview ×1
uitextview ×1
windows-8.1 ×1
xcode4.2 ×1