我想要的应该是简单但由于某种原因它不能正常工作。因此,当我重新排列我的表视图时,每一行都以类似于表视图(从上到下)的顺序保存在数组N
中作为NSManagedObject的子类。如果朋友视图显示两行,friend1和friend2,则friends
为friend1,friends[0]
为friend2。
每当表顺序发生变化时,我希望数据以与friends[1]
数组中相同的顺序存储在核心数据中。
有没有简单的方法用我的friends
数组替换所有核心数据?
答案 0 :(得分:2)
Core Data中的默认集合类型为NSSet
,这是一种无序类型。
NSSortDescriptor
答案 1 :(得分:1)
如果您想管理与排序属性无关的订单,您可以建立关系" ordered"这将导致关系为package com.example.test;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.ServiceConnection;
import android.os.Bundle;
import android.os.IBinder;
import android.support.v7.app.AppCompatActivity;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
MyService mService;
boolean mBound = false;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Bind this and the service together
Intent noiseIntent = new Intent(this, MyService.class);
bindService(noiseIntent, mConnection, Context.BIND_AUTO_CREATE);
startService(noiseIntent);
int num = mService.getRandomNumber();
Toast.makeText(this, "number: " + num, Toast.LENGTH_SHORT).show();
}
/** Defines callbacks for service binding, passed to bindService() */
private ServiceConnection mConnection = new ServiceConnection() {
@Override
public void onServiceConnected(ComponentName className, IBinder service) {
// We've bound to LocalService, cast the IBinder and get LocalService instance
MyService.ServiceBinder binder = (MyService.ServiceBinder) service;
mService = binder.getService();
mBound = true;
}
@Override
public void onServiceDisconnected(ComponentName arg0) {
mBound = false;
}
};
}
。
然后您可以根据需要操纵排序,当您枚举集合时,它将按照您规定的顺序进行操作。
但请注意,核心数据文档中规定的package com.example.test;
import android.app.Service;
import android.content.Intent;
import android.os.Binder;
import android.os.IBinder;
import java.util.Random;
public class MyService extends Service {
// Binder given to clients
private final IBinder mBinder = new ServiceBinder();
// Random number generator
private final Random mGenerator = new Random();
/**
* Class used for the client Binder. Because we know this service always
* runs in the same process as its clients, we don't need to deal with IPC.
*/
public class ServiceBinder extends Binder {
MyService getService() {
// Return this instance of LocalService so clients can call public methods
return MyService.this;
}
}
@Override
public IBinder onBind(Intent intent) {
return mBinder;
}
/**
* method for clients
*/
public int getRandomNumber() {
return mGenerator.nextInt(100);
}
}
存在一些限制。
答案 2 :(得分:0)
核心数据中的对象没有顺序,就像Set。
一样如果您的实体与朋友有多对多的关系,那么您可以使用NSOrderedSet来保持秩序。
或者,您可以设置一个属性,以便在从核心数据中获取对象时将订单索引作为排序条件。