我正在尝试创建一个可变字典,它对值对象具有弱引用(键表现正常).这就是我试图这样做的方式:
+ (id)mutableDictionaryUsingWeakReferencesWithCapacity:(NSUInteger)capacity
{
CFDictionaryKeyCallBacks keyCallbacks = {0, CFRetain, CFRelease, CFCopyDescription, CFEqual, CFHash};
CFDictionaryValueCallBacks valueCallbacks = {0, NULL, NULL, CFCopyDescription, CFEqual};
id<NSObject> obj = (id)(CFDictionaryCreateMutable(NULL, capacity, &keyCallbacks, &valueCallbacks));
return [obj autorelease];
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,我得到一个警告(在不兼容的指针类型初始化声明keyCallbacks时),我已经跟踪它使用CFRetain和CFRelease.由于某些原因,这些回调与所需的原型不匹配(CFDictionaryRetainCallback和CFDictionaryReleaseCallback)
在文档中,它说示例CFDictionaryRetainCallback应该如下所示:
const void *MyCallBack (
CFAllocatorRef allocator,
const void *value
);
Run Code Online (Sandbox Code Playgroud)
但现有的CFRetain被宣布为
CFTypeRef CFRetain(CFTypeRef cf);
Run Code Online (Sandbox Code Playgroud)
它缺少allocator参数,这就是我认为编译器发出警告的原因:它不是函数签名中的完美匹配.
有没有人试图做这样的事情?
我正在玩Play!框架CRUD模块,但我无法弄清楚:我的数据库表有一个created字段,基本上是一行创建的时间.我不希望我的用户设置它,我想在后端执行,只需添加当前时间.我无法弄清楚如何做到这一点.
我已经使该字段不可见@Hidden但显然现在我无法创建新行,因为它的值根本没有设置.那么我该怎么做?
我有另一个问题:我的表还有一个名为publish另一个时间戳的列.CRUD表单中此字段的当前格式为yyyy-MM-dd.我想指定一个日期,也无法弄清楚如何...
有人可以帮忙吗?
首先,我使用模拟器来测试它.我想打开带有消息文本的默认SMS应用程序(作为参数发送),并允许用户从那里(以及内置应用程序)获取控件.我用这个代码:
Button btnSMS = (Button) findViewById(R.id.btnSMS);
btnSMS.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0) {
Intent it = new Intent(Intent.ACTION_VIEW);
it.putExtra("sms_body", "text");
it.setType("vnd.android-dir/mms-sms");
}
});
Run Code Online (Sandbox Code Playgroud)
当我按下按钮时没有任何反应.我希望打开SMS默认应用程序,使用用户必须填写的文本和其他字段,然后发送消息.这是因为模拟器还是我的代码?我还在清单中指定了权限:
<uses-permission android:name ="android.permission.SEND_SMS"/>
设想:
字段可以是YES或NO - > Active:Yes | 活跃:不
所以,我得到了一个为每个客户端返回它的查询.
我想在表单中显示结果,我应该能够编辑它并再次保存在BD上.
我几乎可以做到,但我需要默认值已经保存在BD上,而我的atm似乎显示最后一行或其他东西.
我想要显示当前状态或能够更改它(是或否)
这对于组合框来说是这样的:
$sql = "SELECT * FROM client,sector WHERE client.idClient = '$id' AND sector.idSector=client.Sector_idSector ";
$result = mysql_query($sql);
while($row = mysql_fetch_array($result))
{
<select name="alterar_sector" id="sectorbox" >
<?php
while($row = mysql_fetch_array($result))
{
echo '<option value="'.$row['idSector'].'">'.$row['idSector'].' - '.$row['Nomesec'].'</option>';
}
?>
</select>
}
Run Code Online (Sandbox Code Playgroud)
不要重视显示"扇区"甚至查询等信息.
恢复:
我希望组合框可以将当前值显示为默认值,并列出要更改的其他可能值.
谢谢 :)
在Java中创建Integer类型的arraylist时,默认值是什么?我需要检查arraylist是否已满并且我将获得数组的大小然后获取最后一个索引的值并检查它是否是默认值.
有没有更好的办法?什么是默认值?
希望有道理.干杯
int size = a.size();
int last = a.get(size);
if( last == null )
{
return true;
}else{
return false;
}
Run Code Online (Sandbox Code Playgroud)
编辑;
是否有可能创建一个具有最大大小的ArrayList,以阻止它动态扩展?当你创建一个ArrayList并使用size()时会返回实际大小或arraylist中的元素数量吗?当这样做以创建最大尺寸时,默认值是否为空?
public boolean isFull()
{
int size = a.size();
int last = 0;
try{
last = a.get(size-1);
}catch (Exception e){
}
if( last == null )
{
return true;
}else{
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
我目前有这个,它看起来怎么样?这现在有意义吗?
我有这门课:
public class SharedPreferenceUtil {
private SharedPreferences prefs;
private static final String PRODUCTION_MODE_URL_GET_CHECKLIST_JSON = "www.exemplo.com/json";
//configuration keys
private static final String KEY_URL_GET_CHECKLIST_JSON = "KEY_URL_GET_CHECKLIST_JSON";
public SharedPreferenceUtil(Context context){
prefs = PreferenceManager.getDefaultSharedPreferences(context);
}
private void initializeDefaultAppConfigurationValues(){
prefs.edit().putString(KEY_URL_GET_CHECKLIST_JSON, PRODUCTION_MODE_URL_GET_CHECKLIST_JSON);
prefs.edit().commit();
}
public Configuration getConfiguration() {
Configuration configuration = new Configuration();
initializeDefaultAppConfigurationValues();
configuration.setChecklistGetURL(prefs.getString(KEY_URL_GET_CHECKLIST_JSON,""));
return configuration;
}
}
Run Code Online (Sandbox Code Playgroud)
当我在行中保存值时:prefs.edit()commit()..它返回true.当我尝试读取以下值时:prefs.getString(KEY_URL_GET_CHECKLIST_JSON,"").它返回"",好像该值尚未保存.
有人可以帮我解决这个问题.
我将一个mysql数据库从运行在linux上的mysql服务器恢复到一个运行在windows上的服务器.在我试图在其中一个表上运行ALTER TABLE之前,一切似乎都很好.如果我尝试更改任何内容,我得到的错误是:错误代码:1067.'creation_date'的默认值无效
现在奇怪的是,转储文件成功恢复并创建了表.如果我使用Workbench获取表的create语句,我看到:
`creation_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
Run Code Online (Sandbox Code Playgroud)
对于导致问题的列.
CREATE TABLE语句如何以这样的方式成功,我现在无法对其进行更改?
使用此代码:
bool successfulSend;
const string quote = "\"";
string keepPrinterOn = string.Format("! U1 setvar {0}power.dtr_power_off{0} {0}off{0}", quote);
string shutPrinterOff = string.Format("! U1 setvar {0}power.dtr_power_off{0} {0}on{0}", quote);
string advanceToBlackBar = string.Format("! U1 setvar {0}media.sense_mode{0} {0}bar{0}", quote);
string advanceToGap = string.Format("! U1 setvar {0}media.sense_mode{0} {0}gap{0}", quote);
if (radbtnBar.Checked)
{
successfulSend = SendCommandToPrinter(advanceToBlackBar);
}
else if (radbtnGap.Checked)
{
successfulSend = SendCommandToPrinter(advanceToGap);
}
if (successfulSend)
{
MessageBox.Show("label type command successfully sent");
}
Run Code Online (Sandbox Code Playgroud)
我得到," 使用未分配的局部变量'successfulSend' "
所以我必须将bool声明更改为:
bool successfulSend = false;
Run Code Online (Sandbox Code Playgroud)
...让它编译/运行.但是bool [ean] s的默认值是不是假的?为什么必须明确指定默认值?
此代码没有任何投诉: …
我有一个封装各种类型对象的泛型类.因为我使用泛型,所以我不能使用@delegate注释(因为它不适用于泛型,def或Object类型).相反,我利用methodMissing和propertyMissing方法传递方法调用和对封装对象的属性访问.我遇到的问题是如何委托调用DefaultGroovyMethods添加的方法(每个,收集,唯一等).我试过做以下事情:
protected void setObject(T object)
{
// Save the object
this.object = object
// Delegate all the default Groovy methods to the object
DefaultGroovyMethods.class.methods*.name.unique().each({ name ->
this.metaClass.'static'."${name}" = this.object.&"${name}"
})
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,这根本不起作用.甚至可以通过元类覆盖默认的Groovy方法吗?如果是,那么需要改变哪些才能使其工作?
为什么我们不能用默认静态方法创建接口?
public interface StaticTest {
default static void display() {
System.out.println("Display here");
}
}
Run Code Online (Sandbox Code Playgroud)